sql答辩.docx

上传人:b****8 文档编号:11168816 上传时间:2023-02-25 格式:DOCX 页数:18 大小:26.58KB
下载 相关 举报
sql答辩.docx_第1页
第1页 / 共18页
sql答辩.docx_第2页
第2页 / 共18页
sql答辩.docx_第3页
第3页 / 共18页
sql答辩.docx_第4页
第4页 / 共18页
sql答辩.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

sql答辩.docx

《sql答辩.docx》由会员分享,可在线阅读,更多相关《sql答辩.docx(18页珍藏版)》请在冰豆网上搜索。

sql答辩.docx

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。

------------

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1