sql答辩.docx
- 文档编号:11168816
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:18
- 大小:26.58KB
sql答辩.docx
《sql答辩.docx》由会员分享,可在线阅读,更多相关《sql答辩.docx(18页珍藏版)》请在冰豆网上搜索。
sql答辩
陕西国防工业职业技术学院
SQLServer答辩
专业:
软件技术专业
班级:
软件3131
姓名:
陈荣
学号:
35313135
指导老师:
戚斌
实训时间:
实训地点:
北8-504
成绩:
软件教研室制
陕西国防工业职业技术学院
SHAANXIINSTITUTEOFTECHNOLOGY
实训项目单
一、实训目标
掌握SQLServer数据库创建方法,掌握数据表、数据库完整性约束、基本查询语句的使用、数据更新方法、视图索引的建立、常用数据库对象的创建及使用、SQL编程序等多方面的综合练习,旨在强化训练,真正做到熟练掌握甚至精通,为以后数据库维护、网络管理、编程打好基础。
二、实训要求
完成实训题目,并将最终结果保存在自己的FTP上(在自己的FTP帐号上建立”RJ3131XXSQL实训”文件夹,将所有实训结果、脚本文件、数据库、实训报告均保存在此文件夹下,XX代表自己的学号),所有操作使用T-SQL语句完成。
填写如下实训报告,将脚本文件复制到相应的短线之间,复制时匹配目标格式。
实训最低要求:
读懂其中所有代码,并可进行简单修改模仿。
三、考核标准
(1)平时实习纪律考勤占10%
(2)实训报告占40%
(3)代码文件及数据库文件占40%
(4)实习总结占10%
SQLServer实训
1.创建数据库
创建一个名称为factory的数据库,脚本文件名:
0100.sql,此脚本文件可利用企业管理器自动生成。
(1)将主数据库文件factory_Data.MDF放置在D:
\DBF文件夹中,其文件大小自动增长为按5MB增长。
(2)将事务日志文件factory_Log.MDF放置在D:
\DBF文件夹中,其文件大小自动增长为按1MB增长。
------------------------------------脚本文件0100.sql--------------------------------------------
createdatabasefactory
onprimary
(name=factory_Data,filename='d:
\dbf\factory_Data.MDF',
size=10mb,
maxsize=unlimited,
filegrowth=5mb)
logon
(name=factory_Log,
filename='d:
\dbf\factory_log.ldf',
size=20mb,
maxsize=unlimited,
filegrowth=1mb)
go
-------------------------------------------------------------------------------------------------------
2.创建和使用表
脚本文件名:
0200.sql,此脚本文件可利用企业管理器自动生成。
(1)建立职工表worker,其结构为:
职工号:
int,姓名:
char(8),性别:
char
(2),出生日期:
datetime,党员否:
bit,参加工作:
datetime,部门号:
int。
其中“职工号”为主键。
在worker表中输入如下记录:
职工号
姓名
性别
出生日期
党员否
参加工作
部门号
3
陈明
男
05/08/45
否
0I/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/4
728.0
8
张旗
02/03/04
733.0
(4)建立worker、depart和salary3个表之间的关系。
注意:
数据的录入可使用导入的方法,可先建立数据表结构,然后将此数据复制到excel,最后将其导入到数据库中,注意此数据中的日期格式。
3个表之间的关系主要指主外键关系。
--------------------------------------脚本文件0200.sql------------------------------------------
USE[factory]
GO
/******Object:
Table[dbo].[worker]ScriptDate:
06/10/201409:
07:
02******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[worker](
[职工号][int]NOTNULL,
[姓名][char](8)NOTNULL,
[性别][char]
(2)NULL,
[出生日期][datetime]NULL,
[党员否][bit]NULL,
[参加工作][datetime]NULL,
[部门号][int]NULL,
CONSTRAINT[PK_worker]PRIMARYKEYCLUSTERED
(
[职工号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
-------------------------------------------------------------------------------------------------------
3.数据库完整性
脚本文件名:
0300.sql,此脚本文件可利用企业管理器自动生成。
(1)实施worker表的“性别”字段默认值为“男”的约束。
(2)实施salary表的“工资”字段值限定在0~9999的约束。
(3)建立一个规则sex:
@性别='男'OR@性别='女',将其绑定到worker表的“性别”列上。
------------------------------------脚本文件0300.sql--------------------------------------------
USE[factory]
GO
/******Object:
Table[dbo].[worker]ScriptDate:
06/10/201411:
34:
46******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[worker](
[职工号][int]NOTNULL,
[姓名][char](8)NOTNULL,
[性别][char]
(2)NULL,
[出生日期][datetime]NULL,
[党员否][char]
(2)NULL,
[参加工作][datetime]NULL,
[部门号][int]NULL,
CONSTRAINT[PK_worker]PRIMARYKEYCLUSTERED
(
[职工号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
/******Object:
Table[dbo].[salary]ScriptDate:
06/10/201411:
34:
46******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[salary](
[职工号][int]NOTNULL,
[姓名][char](8)NOTNULL,
[日期][datetime]NOTNULL,
[工资][decimal](6,1)NULL,
CONSTRAINT[PK_salary]PRIMARYKEYCLUSTERED
(
[职工号]ASC,
[日期]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
/******Object:
Default[DF_worker_性别]ScriptDate:
06/10/201411:
34:
46******/
ALTERTABLE[dbo].[worker]ADDCONSTRAINT[DF_worker_性别]DEFAULT('男')FOR[性别]
GO
/******Object:
Check[CK_salary]ScriptDate:
06/10/201411:
34:
46******/
ALTERTABLE[dbo].[salary]WITHCHECKADDCONSTRAINT[CK_salary]CHECK(([工资]>(0)AND[工资]<(9999)))
GO
ALTERTABLE[dbo].[salary]CHECKCONSTRAINT[CK_salary]
GO
/******Object:
Check[CK_worker]ScriptDate:
06/10/201411:
34:
46******/
ALTERTABLE[dbo].[worker]WITHCHECKADDCONSTRAINT[CK_worker]CHECK(([性别]='男'OR[性别]='女'))
GO
ALTERTABLE[dbo].[worker]CHECKCONSTRAINT[CK_worker]
GO
/******Object:
ForeignKey[FK_worker_worker]ScriptDate:
06/10/201411:
34:
46******/
ALTERTABLE[dbo].[worker]WITHCHECKADDCONSTRAINT[FK_worker_worker]FOREIGNKEY([职工号])
REFERENCES[dbo].[worker]([职工号])
GO
ALTERTABLE[dbo].[worker]CHECKCONSTRAINT[FK_worker_worker]
GO
/******Object:
ForeignKey[FK_worker_worker1]ScriptDate:
06/10/201411:
34:
46******/
ALTERTABLE[dbo].[worker]WITHCHECKADDCONSTRAINT[FK_worker_worker1]FOREIGNKEY([职工号])
REFERENCES[dbo].[worker]([职工号])
GO
ALTERTABLE[dbo].[worker]CHECKCONSTRAINT[FK_worker_worker1]
GO
-------------------------------------------------------------------------------------------------------
4.查询数据
(1).查询所有男性职工的职工号、姓名。
脚本文件名:
0401.sql。
------------------------------------脚本文件0401.sql--------------------------------------------
select职工号,姓名fromworker
where性别='男'
-------------------------------------------------------------------------------------------------------
(2).查询所有2000年以前工作的职工姓名、参加工作时间。
脚本文件名:
0402.sql。
------------------------------------脚本文件0402.sql--------------------------------------------
select姓名,参加工作fromworker
where参加工作<='2000-01-01'
-------------------------------------------------------------------------------------------------------
(3).查询所有市场部的职工姓名、性别、职工号、是否党员。
脚本文件名:
0403.sql。
------------------------------------脚本文件0403.sql--------------------------------------------
select姓名,性别,职工号,党员否fromworkerinnerjoindepart
ondepart.部门号=worker.部门号
wheredepart.部门名='市场部'
-------------------------------------------------------------------------------------------------------
(4).查询所有职工2004年2月的职工工资,显示字段包括职工号、职工姓名、性别、部门名称、工资,并按工资从大到小排序。
脚本文件名:
0404.sql。
------------------------------------脚本文件0404.sql--------------------------------------------
selectworker.职工号,worker.姓名,性别,部门名,工资fromworkerinnerjoinsalaryonworker.职工号=salary.职工号innerjoindepartonworker.部门号=depart.部门号
where(salary.日期>'2004-02-01'orsalary.日期>'2004-02-29')orderby工资desc
-------------------------------------------------------------------------------------------------------
(5).查询所有市场部和人事处职工的职工号、职工姓名。
脚本文件名:
0405.sql。
------------------------------------脚本文件0405.sql--------------------------------------------
select职工号,姓名fromworker
where部门号in(select部门号fromdepartwhere部门名='人事处'or部门名='市场部')
-------------------------------------------------------------------------------------------------------
(6).查询所有职工的总工资、职工号、职工姓名。
脚本文件名:
0406.sql。
------------------------------------脚本文件0406.sql--------------------------------------------
select职工号,姓名,sum(工资)as总工资fromsalarygroupbysalary.姓名,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部门名fromdepartwheredepart.部门号=worker.部门号)and党员否='是'
groupbyworker.部门号,depart.部门名
-------------------------------------------------------------------------------------------------------
(9).查询所有职工的平均工资,显示字段包括职工号、职工姓名、平均工资。
脚本文件名:
0409.sql。
------------------------------------脚本文件0409.sql--------------------------------------------
select职工号,姓名,avg(工资)as平均工资fromsalarygroupbysalary.姓名,salary.职工号
-------------------------------------------------------------------------------------------------------
(10).查询所有平均工资高于1200的职工信息(职工号、职工姓名、性别)和对应的平均工资。
脚本文件名:
0410.sql。
------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 答辩