数据库SQL实验题目

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一数据库和表的建立

●实验目的

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

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

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

●实验容和要求

一、数据库的创建

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

Grademanager数据库参数表

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

1.表的创建

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

特别注意:

为属性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>=1 And Degree<=100

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

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

图2为SC表设置外键Cno

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

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

课程关系表Course 成绩表SC

3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student

表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除

思考题

1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?

2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?

实验二 单表查询

● 实验目的

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

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

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

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

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

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

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

● 实验容和要求

一、表结构修改

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

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

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

教师表Student 授课表Teaching

二、完成下面查询 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子句、GROUP BY子句中?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表中插入记录('20050203','静','女','1981-3-21','CS' ,'电子商务')2.插入学号为20050302,为四学生信息

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

(提示:利用select into 命令可备份数据库中的表

相关文档
最新文档