SQL Server实训报告Word格式.docx
- 文档编号:19244314
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:18
- 大小:22.51KB
SQL Server实训报告Word格式.docx
《SQL Server实训报告Word格式.docx》由会员分享,可在线阅读,更多相关《SQL Server实训报告Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
0100.sql,此脚本文件可利用企业管理器自动生成。
(1)将主数据库文件factory_Data.MDF放置在文件夹中,其文件大小自动增长为按5MB增长。
(2)将事务日志文件factory_Log.MDF放置在D:
\DATA文件夹中,其文件大小自动增长为按1MB增长。
------------------------------------脚本文件0100.sql--------------------------------------------
USE[master]
GO
/******对象:
Database[factory]脚本日期:
11/05/201009:
41:
33******/
CREATEDATABASE[factory]ONPRIMARY
(NAME=N'
factory'
FILENAME=N'
D:
\data\factory.mdf'
SIZE=3072KB,MAXSIZE=UNLIMITED,FILEGROWTH=5120KB)
LOGON
factory_log'
\data\factory_log.ldf'
SIZE=1024KB,MAXSIZE=2048GB,FILEGROWTH=1024KB)
COLLATEChinese_PRC_CI_AS
-------------------------------------------------------------------------------------------------------
2.创建和使用表
脚本文件名:
0200.sql,此脚本文件可利用企业管理器自动生成。
(1)建立职工表worker,其结构为:
职工号:
int,姓名:
char(8),性别:
char
(2),出生日期:
datetime,党员否:
bit,参加工作:
datetime,部门号:
int。
其中“职工号”为主键。
在worker表中输入如下记录:
职工号
姓名
性别
出生日期
党员否
参加工作
部门号
3
陈明
男
05/08/45
否
01/01/65
2
10
陈涛
02/10/58
是
07/12/84
7
程西
女
06/10/80
07/10/02
1
12
李涵
04/19/65
07/10/89
4
李华
08/07/56
07/20/83
14
李艺
02/10/63
07/20/90
9
刘夫文
01/11/42
08/10/60
11
刘欣
10/08/52
01/07/70
6
欧阳少兵
12/09/71
07/20/92
孙华
0l/03/52
10/10/70
孙天奇
03/10/65
07/10/87
13
王小燕
02/10/64
15
魏君
01/10/70
07/10/93
5
余慧
12/04/80
8
张旗
11/10/80
(2)建立部门表depart,其结构为:
部门号:
int,部门名:
char(10)。
其中,“部门号”为主键。
在depart表中输入如下记录:
部门名
财务处
人事处
市场部
(3)建立职工工资表salary,其结构为:
char(8),日期:
datetime,工资:
decimal(6,1)。
其中,“职工号”和“日期”为主键。
在salary表中输入如下记录
日期
工资
01/04/04
1350.6
02/03/04
1355.6
1245.8
1250.8
750.8
755.8
1345.0
1350.0
1500.5
1505.5
1000.6
1005.6
2006.8
2011.8
1250.0
1255.0
1085.0
1201.5
1206.5
900.0
905.0
1200.0
1205.0
1100.0
1105.0
725.0
730.0
728.0
733.0
(4)建立worker、depart和salary3个表之间的关系。
注意:
数据的录入可使用导入的方法,可先建立数据表结构,然后将此数据复制到excel,最后将其导入到数据库中,注意此数据中的日期格式。
3个表之间的关系主要指主外键关系。
--------------------------------------脚本文件0200.sql------------------------------------------
CREATETABLE[dbo].[worker](
[职工号][int]NOTNULL,
[姓名][char](8)COLLATEChinese_PRC_CI_ASNOTNULL,
[性别][char]
(2)COLLATEChinese_PRC_CI_ASNOTNULL,
[出生日期][datetime]NOTNULL,
[党员否][bit]NOTNULL,
[参加工作][datetime]NOTNULL,
[部门号][int]NOTNULL,
CONSTRAINT[PK_worker]PRIMARYKEYCLUSTERED
(
[职工号]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
CREATETABLE[dbo].[depart](
[部门名][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT[PK_depart]PRIMARYKEYCLUSTERED
[部门号]ASC
CREATETABLE[dbo].[salary](
[日期][datetime]NOTNULL,
[工资][decimal](6,1)NOTNULL,
CONSTRAINT[PK_salary]PRIMARYKEYCLUSTERED
[职工号]ASC,
[日期]ASC
3.数据库完整性
0300.sql,此脚本文件可利用企业管理器自动生成。
(1)实施worker表的“性别”字段默认值为“男”的约束。
(2)实施salary表的“工资”字段值限定在0~9999的约束。
------------------------------------脚本文件0300.sql--------------------------------------------
altertableworker
addconstraintdf_性别default'
男'
for性别
altertablesalary
addconstraintch_gzcheck((工资)>
=0and(工资)<
=9999)
4.查询数据
(1).查询所有男性职工的职工号、姓名。
0401.sql。
------------------------------------脚本文件0401.sql--------------------------------------------
select职工号,姓名
fromworker
where性别='
(2).查询所有2000年以前工作的职工姓名、参加工作时间。
0402.sql。
------------------------------------脚本文件0402.sql--------------------------------------------
select姓名,参加工作
whereyear(参加工作)<
=2000
(3).查询所有市场部的职工姓名、性别、职工号、是否党员。
0403.sql。
------------------------------------脚本文件0403.sql--------------------------------------------
select职工号,姓名,性别,党员否
where部门号in(select部门号fromdepartwhere部门名='
市场部'
)
(4).查询所有职工2004年2月的职工工资,显示字段包括职工号、职工姓名、性别、部门名称、工资,并按工资从大到小排序。
0404.sql。
------------------------------------脚本文件0404.sql--------------------------------------------
selectworker.职工号,worker.姓名,worker.性别,depart.部门名,salary.工资
joinsalary
onworker.职工号=salary.职工号
joindepart
onworker.部门号=depart.部门号
where日期='
2004-2-3'
orderby工资desc
(5).查询所有市场部和人事处职工的职工号、职工姓名。
0405.sql。
------------------------------------脚本文件0405.sql--------------------------------------------
人事处'
or部门名='
(6).查询所有职工的总工资、职工号、职工姓名。
0406.sql。
------------------------------------脚本文件0406.sql--------------------------------------------
select职工号,姓名,sum(工资)as总工资
fromsalary
groupbysalary.姓名,salary.职工号
(7).查询所有职工的年龄,显示字段包括职工号、职工姓名、出生年月、年龄。
0407.sql。
------------------------------------脚本文件0407.sql--------------------------------------------
select职工号,姓名,出生日期,year(getdate())-year(出生日期)as年龄
(8).查询各部门的党员人数,显示字段包括部门号、部门名称、党员人数。
0408.sql。
------------------------------------脚本文件0408.sql--------------------------------------------
selectworker.部门号,depart.部门名,count(党员否)党员人数
fromworker,depart
where部门名in(select部门名fromdepartwhere
depart.部门号=worker.部门号)and党员否='
true'
groupbyworker.部门号,depart.部门名
(9).查询所有职工的平均工资,显示字段包括职工号、职工姓名、平均工资。
0409.sql。
------------------------------------脚本文件0409.sql--------------------------------------------
select职工号,姓名,avg(工资)as平均工资
(10).查询所有平均工资高于1200的职工信息(职工号、职工姓名、性别)和对应的平均工资。
0410.sql。
------------------------------------脚本文件0410.sql--------------------------------------------
selectsalary.职工号,salary.姓名,avg(工资)as平均工资,worker.性别
joinworker
onsalary.职工号=worker.职工号
groupbysalary.姓名,salary.职工号,worker.性别
havingavg(工资)>
1200
(11).显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。
0411.sql。
------------------------------------脚本文件0411.sql--------------------------------------------
selectsalary.职工号,salary.姓名,salary.日期,worker.性别,depart.部门名,salary.工资
where工资=(selectmax(工资)fromsalary)
(12)显示最高工资的职工所在的部门名。
0412.sql。
------------------------------------脚本文件0412.sql--------------------------------------------
selectsalary.职工号,depart.部门名,salary.工资
(13)显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。
0413.sql。
------------------------------------脚本文件0413.sql--------------------------------------------
groupby职工号,姓名
havingavg(工资)<
(selectavg(工资)fromsalary)
5.更新数据
(1).在depart表中插入设备处记录,部门编号为4。
0501.sql。
------------------------------------脚本文件0501.sql--------------------------------------------
insertintodepart(部门号,部门名)
values('
4'
'
设备处'
(2).在depart表中插入资产处记录,部门编号为当前
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL Server实训报告 Server 报告