SQL Server实训报告.docx
- 文档编号:6238610
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:18
- 大小:22.51KB
SQL Server实训报告.docx
《SQL Server实训报告.docx》由会员分享,可在线阅读,更多相关《SQL Server实训报告.docx(18页珍藏版)》请在冰豆网上搜索。
SQLServer实训报告
SQLServer实训报告
专业:
计算机网络技术
班级:
姓名:
学号:
指导老师:
实训时间:
2010-11-5
实训地点:
网络实验室
成绩:
计算机教研室制
-----------------------------------------------------------------------------
一、实训目标
掌握SQLServer数据库创建方法,掌握数据表、数据库完整性约束、基本查询语句的使用、数据更新方法、视图索引的建立、常用数据库对象的创建及使用、SQL编程序等多方面的综合练习,旨在强化训练,真正做到熟练掌握甚至精通,为以后数据库维护、网络管理、编程打好基础。
二、实训要求
完成实训题目,并将最终结果保存在自己的FTP上(在自己的FTP帐号上建立”WL3091XXSQL实训”文件夹,将所有实训结果、脚本文件、数据库、实训报告均保存在此文件夹下,XX代表自己的学号),所有操作尽量使用查询分析器完成。
填写如下实训报告,将脚本文件复制到相应的短线之间,复制时匹配目标格式。
实训最低要求:
查询数据和数据更新要求必须用查询分析器完成,其他可在SSMS中完成,但要求能够生成脚本文件,并能读懂其中所有代码,并可进行简单修改模仿。
三、考核标准
(1)平时实习纪律考勤占10%
(2)实训报告占40%
(3)代码文件及数据库文件占40%
(4)实习总结占10%
1.创建数据库
创建一个名称为factory的数据库,脚本文件名:
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
(NAME=N'factory_log',FILENAME=N'D:
\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
2
7
程西
女
06/10/80
否
07/10/02
1
12
李涵
男
04/19/65
是
07/10/89
3
4
李华
男
08/07/56
否
07/20/83
3
14
李艺
女
02/10/63
否
07/20/90
3
9
刘夫文
男
01/11/42
否
08/10/60
2
11
刘欣
男
10/08/52
否
01/07/70
1
6
欧阳少兵
男
12/09/71
是
07/20/92
3
1
孙华
男
0l/03/52
是
10/10/70
1
2
孙天奇
女
03/10/65
是
07/10/87
2
13
王小燕
女
02/10/64
否
07/10/89
1
15
魏君
女
01/10/70
否
07/10/93
3
5
余慧
男
12/04/80
否
07/10/02
3
8
张旗
男
11/10/80
否
07/10/02
2
(2)建立部门表depart,其结构为:
部门号:
int,部门名:
char(10)。
其中,“部门号”为主键。
在depart表中输入如下记录:
部门号
部门名
1
财务处
2
人事处
3
市场部
(3)建立职工工资表salary,其结构为:
职工号:
int,姓名:
char(8),日期:
datetime,工资:
decimal(6,1)。
其中,“职工号”和“日期”为主键。
在salary表中输入如下记录
职工号
姓名
日期
工资
3
陈明
01/04/04
1350.6
3
陈明
02/03/04
1355.6
10
陈涛
01/04/04
1245.8
10
陈涛
02/03/04
1250.8
7
程西
01/04/04
750.8
7
程西
02/03/04
755.8
12
李涵
01/04/04
1345.0
12
李涵
02/03/04
1350.0
4
李华
01/04/04
1500.5
4
李华
02/03/04
1505.5
14
李艺
01/04/04
1000.6
14
李艺
02/03/04
1005.6
9
刘夫文
01/04/04
2006.8
9
刘夫文
02/03/04
2011.8
11
刘欣
01/04/04
1250.0
11
刘欣
02/03/04
1255.0
6
欧阳少兵
01/04/04
1085.0
6
欧阳少兵
02/03/04
1085.0
1
孙华
01/04/04
1201.5
1
孙华
02/03/04
1206.5
2
孙天奇
01/04/04
900.0
2
孙天奇
02/03/04
905.0
13
王小燕
01/04/04
1200.0
13
王小燕
02/03/04
1205.0
15
魏君
01/04/04
1100.0
15
魏君
02/03/04
1105.0
5
余慧
01/04/04
725.0
5
余慧
02/03/04
730.0
8
张旗
01/04/04
728.0
8
张旗
02/03/04
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](
[部门号][int]NOTNULL,
[部门名][char](10)COLLATEChinese_PRC_CI_ASNOTNULL,
CONSTRAINT[PK_depart]PRIMARYKEYCLUSTERED
(
[部门号]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
CREATETABLE[dbo].[salary](
[职工号][int]NOTNULL,
[姓名][char](8)COLLATEChinese_PRC_CI_ASNOTNULL,
[日期][datetime]NOTNULL,
[工资][decimal](6,1)NOTNULL,
CONSTRAINT[PK_salary]PRIMARYKEYCLUSTERED
(
[职工号]ASC,
[日期]ASC
)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]
)ON[PRIMARY]
-------------------------------------------------------------------------------------------------------
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姓名,参加工作
fromworker
whereyear(参加工作)<=2000
-------------------------------------------------------------------------------------------------------
(3).查询所有市场部的职工姓名、性别、职工号、是否党员。
脚本文件名:
0403.sql。
------------------------------------脚本文件0403.sql--------------------------------------------
select职工号,姓名,性别,党员否
fromworker
where部门号in(select部门号fromdepartwhere部门名='市场部')
-------------------------------------------------------------------------------------------------------
(4).查询所有职工2004年2月的职工工资,显示字段包括职工号、职工姓名、性别、部门名称、工资,并按工资从大到小排序。
脚本文件名:
0404.sql。
------------------------------------脚本文件0404.sql--------------------------------------------
selectworker.职工号,worker.姓名,worker.性别,depart.部门名,salary.工资
fromworker
joinsalary
onworker.职工号=salary.职工号
joindepart
onworker.部门号=depart.部门号
where日期='2004-2-3'
orderby工资desc
-------------------------------------------------------------------------------------------------------
(5).查询所有市场部和人事处职工的职工号、职工姓名。
脚本文件名:
0405.sql。
------------------------------------脚本文件0405.sql--------------------------------------------
select职工号,姓名
fromworker
where部门号in(select部门号fromdepartwhere部门名='人事处'or部门名='市场部')
-------------------------------------------------------------------------------------------------------
(6).查询所有职工的总工资、职工号、职工姓名。
脚本文件名:
0406.sql。
------------------------------------脚本文件0406.sql--------------------------------------------
select职工号,姓名,sum(工资)as总工资
fromsalary
groupbysalary.姓名,salary.职工号
-------------------------------------------------------------------------------------------------------
(7).查询所有职工的年龄,显示字段包括职工号、职工姓名、出生年月、年龄。
脚本文件名:
0407.sql。
------------------------------------脚本文件0407.sql--------------------------------------------
select职工号,姓名,出生日期,year(getdate())-year(出生日期)as年龄
fromworker
-------------------------------------------------------------------------------------------------------
(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平均工资
fromsalary
groupbysalary.姓名,salary.职工号
-------------------------------------------------------------------------------------------------------
(10).查询所有平均工资高于1200的职工信息(职工号、职工姓名、性别)和对应的平均工资。
脚本文件名:
0410.sql。
------------------------------------脚本文件0410.sql--------------------------------------------
selectsalary.职工号,salary.姓名,avg(工资)as平均工资,worker.性别
fromsalary
joinworker
onsalary.职工号=worker.职工号
groupbysalary.姓名,salary.职工号,worker.性别
havingavg(工资)>1200
-------------------------------------------------------------------------------------------------------
(11).显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。
脚本文件名:
0411.sql。
------------------------------------脚本文件0411.sql--------------------------------------------
selectsalary.职工号,salary.姓名,salary.日期,worker.性别,depart.部门名,salary.工资
fromworker
joindepart
onworker.部门号=depart.部门号
joinsalary
onsalary.职工号=worker.职工号
where工资=(selectmax(工资)fromsalary)
-------------------------------------------------------------------------------------------------------
(12)显示最高工资的职工所在的部门名。
脚本文件名:
0412.sql。
------------------------------------脚本文件0412.sql--------------------------------------------
selectsalary.职工号,depart.部门名,salary.工资
fromworker
joindepart
onworker.部门号=depart.部门号
joinsalary
onsalary.职工号=worker.职工号
where工资=(selectmax(工资)fromsalary)
-------------------------------------------------------------------------------------------------------
(13)显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。
脚本文件名:
0413.sql。
------------------------------------脚本文件0413.sql--------------------------------------------
select职工号,姓名
fromsalary
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 报告