数据库SQL实验题目.docx

上传人:b****5 文档编号:7572472 上传时间:2023-05-11 格式:DOCX 页数:12 大小:67.58KB
下载 相关 举报
数据库SQL实验题目.docx_第1页
第1页 / 共12页
数据库SQL实验题目.docx_第2页
第2页 / 共12页
数据库SQL实验题目.docx_第3页
第3页 / 共12页
数据库SQL实验题目.docx_第4页
第4页 / 共12页
数据库SQL实验题目.docx_第5页
第5页 / 共12页
数据库SQL实验题目.docx_第6页
第6页 / 共12页
数据库SQL实验题目.docx_第7页
第7页 / 共12页
数据库SQL实验题目.docx_第8页
第8页 / 共12页
数据库SQL实验题目.docx_第9页
第9页 / 共12页
数据库SQL实验题目.docx_第10页
第10页 / 共12页
数据库SQL实验题目.docx_第11页
第11页 / 共12页
数据库SQL实验题目.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库SQL实验题目.docx

《数据库SQL实验题目.docx》由会员分享,可在线阅读,更多相关《数据库SQL实验题目.docx(12页珍藏版)》请在冰点文库上搜索。

数据库SQL实验题目.docx

数据库SQL实验题目

实验一数据库和表的建立

实验目的

1.掌握数据库和表的基础知识

2.掌握使用创建数据库和表的方法

3.掌握数据库和表的修改、查看、删除等基本操作方法

实验内容和要求

一、数据库的创建

在开始菜单中,启动SQlServer程序中的“SQLServerManagementStudio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:

Grademanager数据库参数表

参数

参数值

参数

参数值

存储的数据文件路径

D:

\db\

存储的日志文件路径

D:

\db\

数据文件初始大小

5MB

日志文件初始大小

2MB

数据文件最大值

20MB

日志文件最大值

15MB

数据文件增长量

原来10%

日志文件增长量

2MB

二、表的创建、查看、修改和删除

1.表的创建

在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:

(1)Student表的表结构

字段名称

数据类型

长度

精度

小数位数

是否允许Null值

说明

Sno

Char

10

0

0

学号,主码

Sname

Varchar

8

0

0

姓名

Ssex

Char

2

0

0

性别,取值:

男或女

Sbirthday

Date

8

0

0

出生日期

Sdept

Char

16

0

0

系名

Speciality

Varchar

20

0

0

专业名

特别注意:

为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK约束”命令,然后按照图1进行设置。

图1设置性别的约束

(2)Course表(课程名称表)的表结构

字段名称

数据类型

长度

精度

小数位数

是否允许Null值

说明

Cno

Char

5

0

0

课程号,主码

Cname

Varchar

20

0

0

课程名

(3)SC表(成绩表)的表结构

字段名称

数据类型

长度

精度

小数位数

是否允许Null值

说明

Sno

Char

10

0

0

学号,外码

Cno

Char

5

0

0

课程号,外码

Degree

Decimal

5

5

1

成绩,0~100之间

特别注意:

为属性Degree约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1AndDegree<=100

为SC表设置外键Sno和Cno的方法:

右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。

按照相同的方法,将属性Sno也设置为外键。

图2为SC表设置外键Cno

2.向上述表中输入如下数据记录

学生关系表Student(右键单击表Student,选择“编辑前200行”)

Sno

Sname

Ssex

Sbirthday

Sdept

Speciality

李勇

1987-01-12

CS

计算机应用

刘晨

1988-06-04

IS

电子商务

王敏

1989-12-23

MA

数学

张立

1988-08-25

IS

电子商务

Sno

Cno

Degree

C01

92

C02

85

C03

88

C02

90

C03

80

C01

91

C02

75

C01

87

课程关系表Course成绩表SC

Cno

Cname

C01

数据库

C02

数学

C03

信息系统

C04

操作系统

 

3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性)

(1)向student表中增加“入学时间”列,其数据类型为日期型

(2)将student表中的sdept字段长度改为20

(3)将student表中的Speciality字段删除

思考题

1.SQLServer的数据库文件有几种扩展名分别是什么

2.如何实现数据库的备份和还原

2.在定义基本表语句时,NOTNULL参数的作用是什么

3.主码可以建立在“值可以为NULL”的列上吗

实验二单表查询

实验目的

1.掌握SELECT语句的基本用法

2.使用WHERE子句进行有条件的查询

3.掌握使用IN和NOTIN,BETWEEN…AND和NOTBETWEEN…AND来缩小查询范围的方法

4.掌握聚集函数的使用方法

5.利用LIKE子句实现字符串匹配查询

6.利用ORDERBY子句对查询结果排序

7.利用GROUPBY子句对查询结果分组

实验内容和要求

一、表结构修改

1.在实验一的所建立的数据库中增加Teacher表,结构如下:

字段名称

数据类型

长度

精度

小数位数

是否允许Null值

说明

Tno

Char

3

0

0

教师号,主码

Tname

Varchar

8

0

0

教师名

Tsex

Char

2

0

0

性别,取值:

男或女

Tbirthday

Date

8

0

0

出生日期

Tdept

Char

16

0

0

所在系

2.在实验一的所建立的数据库中增加Teaching表,表结构如下:

Teaching表(授课表)的表结构

字段名称

数据类型

长度

精度

小数位数

是否允许Null值

说明

Cno

Char

5

0

0

课程号,外码

Tno

Char

3

0

0

教师号,外码

Cterm

Tinyint

1

0

0

1-8之间

3.向上述两表中输入如下数据记录

Cno

Tno

Cterm

C01

101

2

C02

102

1

C03

201

3

C04

202

4

教师表Student授课表Teaching

Tno

Tname

Tsex

Tbirthday

Tdept

101

李新

1977-01-12

CS

102

钱军

1968-06-04

CS

201

王小花

1979-12-23

IS

202

张小青

1968-08-25

IS

二、完成下面查询

1.查询所有男生信息

2.查询年龄大于24岁的女生学号和姓名

3.查询所有教师的Tname、Tdept

4.查询“电子商务”专业的学生姓名、性别和出生日期

5.查询成绩低于90分的学生学号及课号,并按成绩降序排列

6.查询Student表中所有的系名

7.查询“C01”课程的开课学期

8.查询成绩在80分至90之间的学生学号及课号

9.统计有学生选修的课程门数

10.查询成绩为77,88或99的记录

11.计算“C02”课程的平均成绩

12.输出有成绩的学生学号

13.查询所有姓“刘”的学生信息

14.统计输出各系学生的人数

15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列

16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”

17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”

18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。

思考题

1.聚集函数能否直接使用在:

SELECT子句、HAVING子句、WHERE子句、GROUPBY子句中

2.关键字ALL和DISTINCT有什么不同的含义

3.SELECT语句中的通配符有几种含义分别是什么

4.利用BETWEEN…AND运算符表示数据的范围能否与其他方法表示怎样表示

实验三多表查询及数据更新

实验目的

1.掌握SELECT语句在多表查询中的应用

2.掌握多表连接的几种连接方式及应用

3.掌握利用INSERT命令实现对表数据的插入操作

4.掌握利用UPDATE命令实现对表数据的修改操作

5.掌握利用DELETE命令实现对表数据的删除操作

实验内容和要求

一、连接查询

1.查询女学生的学生学号及总成绩

2.查询李勇同学所选的课程号及成绩

3.查询李新老师所授课程的课程名称

4.查询女教师所授课程的课程号及课程名称

5.查询姓“王”的学生所学的课程名称

6.查询选修“数据库”课程且成绩在80到90之间的学生学号及成绩

7.查询选修“C02”课程的学生的平均年龄

8.查询学习课程名为“数学”的学生学号和姓名

9.查询“钱军”教师任课的课程号,选修其课程的学生的学号和成绩

10.查询在第3学期所开课程的课程名称,选修其课程的学生学号和成绩

二、嵌套查询

1.查询至少选修两门课程的男学生姓名

2.查询与李勇同一个系的同学姓名;

3.查询学号比刘晨同学大,而年龄比他小的学生姓名

4.查询出生日期大于所有女同学出生日期的男同学的姓名及系别

5.查询成绩比该课程平均成绩高的学生的学号、课程号及成绩

6.查询不讲授“C01”课的教师姓名

7.查询没有选修“C02”课程的学生学号及姓名

8.查询选修了“数据库”课程的学生学号、姓名及系别

9.查询选修了全部课程的学生姓名

10.分别用子查询和连接查询,求“C02”号课程在80分以上的学生信息

三、数据更新

1.向Student表中插入记录('','张静','女','1981-3-21','CS','电子商务')

2.插入学号为,姓名为李四学生信息

3.把男学生记录保存到表TS中

(提示:

利用selectinto命令可备份数据库中的表

格式:

select*into新表名from原表名

where子句;)

4.将学号为的学生姓名改为张华,系别改为“CS”,专业改为“多媒体技术”

5.将学生选修“C03”号课程的成绩改为该课的平均成绩

6.把女同学的成绩提高5%

7.把选修了“数据库”课程学生的成绩全改为空值(NULL)

8.删除学号为的学生记录

9.把“刘晨”同学的选课记录全部删除

10.删除电子商务专业所有学生的选课记录

思考题

1.使用存在量词[NOT]EXISTS的嵌套查询时,何时外层查询的WHERE条件为真,何时为假

2.DROP命令和DELETE命令的本质区别是什么

3.利用INSERT、UPDATE和DELETE命令可以同时对多个表操作吗

实验四索引与视图的创建

实验目的

1.掌握索引的创建和使用

2.掌握视图的创建和删除

实验内容和要求

一、索引的创建与使用

1.用索引管理器创建SC表的索引IX_XS_KC。

(1)选择要创建索引的数据库文件夹,并在右边的对象窗口中选择并打开其中的“表”对象。

(2)选择所要创建索引的SC表,右键单击该表,在弹出的快捷菜单中选择“设计”命令,然后在工具栏中单击“管理索引和键”按钮,打开“索引和键”窗口。

(3)单击其中的“添加”按钮,创建新的索引,并为其设置相应的属性。

为SC表创建一个基于“课程号”列和“成绩”列的索引IX_XS_KC,其中课程号列按升序排列,成绩列按降序排列。

设置完成后,如图3所示。

图3创建索引IX_XS_KC

2.强制使用刚才创建的索引查询数据。

在查询命令窗口中输入以下SQL查询命令并执行:

SELECTSNO,CNO,DEGREE

FROMSC

WITH(INDEX(IX_XS_KC))

WHEREDEGREE>=60

观察一下显示出来的数据是否有序。

3.利用SQL命令实现下列操作:

(1)为Student表创建一个名为S_dept的索引,以系别排序

(2)为Teacher表创建一个名为T_name的聚集索引,以Tname降序排序

(3)删除S_dept索引

二、视图的创建与使用

1.创建一个简单视图view1,查询“计算机系”学生的信息

2.创建一个简单视图view2,统计每门课程的选课人数和最高分

3.创建一个复杂视图view3,查询与“张立”同学同一系别的学生信息

4.删除视图View3

思考题

1.使用索引为什么能提高查询速度

2.索引经常被建立在哪些字段上

3.聚集索引与其他索引有什么不同

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2