当前位置:文档之家› 数据库系统实验指导书(计算机学院2008级使用)

数据库系统实验指导书(计算机学院2008级使用)

实验一 创建数据库和表一、实验目的及要求:1.了解SQL SERVER 数据库的逻辑结构和物理结构2.了解表的结构特点3.了解SQL SERVER 的基本数据结构二、实验任务:1.学会在企业管理器中创建数据库和表2.学会在T-SQL 语句创建数据库和表三、操作要点:1.启动企业管理器,并创建数据库和表2.启动SQL 查询分析器3.掌握创建数据库和表分别是CREATE DATABASE 和CREATE TABLE四、注意事项:1.在Microsoft SQL Server 2000的查询分析器(Query Analyzer)中使用单条SQL 语句,其末尾不需要分号“;”作为命令结尾标记。

2.通常,SQL Server 2000对大多数末尾带有分号的SQL 命令都能顺利执行,但对少数的SQL 命令,末尾若带分号,则SQL Server 2000会给出错误信息提示。

五、实验学时:2学时六、实验重点及难点:1.列级完整性约束条件2.空值的概念3.CREATE DA TABASE 和CREATE TABLE 的用法七、实验步骤:(一) 企业管理器创建数据库和表1.启动企业管理器;2.创建数据库Company ,并创建一个主数据文件Company_Data1,一个二级数据文件Company_Data2,一个日志文件Company_Log ,以及一个自定义文件组Company_Group ,该组中有数据文件Company_Data3,设置各文件属性。

(二) T-SQL 语句创建数据库和表1.启动SQL 查询分析器;2.创建数据库University ,并创建一个主数据文件University_Data 和一个日志文件University_Log ;3. 建立表5.3所示的学生表Students ,各属性为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。

要求Sno 和Sname 不能为空值,且取值唯一,Sno 为键码。

表5.3 关系Students表5.4 关系Courses 表5.5 关系Reports4.建立表5.4所示的课程表Courses,各属性为Cno-课程号, Cname-课程名, Pre_Cno-先修课程号, Credits-学分,要求Cno和Cname不能为空值,Cno取值唯一,且为键码。

5.建立表5.5所示的成绩表Reports。

各属性名为Sno-学号,Cno-课程号和Grade-考试成绩,要求Sno和Cno不能为空,且取值唯一,Sno+ Cno为键码。

实验二 SQL 基本表的插入、删除与修改一、实验目的及要求:熟练掌握基本表的插入、删除与修改,为后继学习作准备。

二、实验任务:1.了解并掌握SQL 查询分析器及企业管理器的使用;2.掌握基本表的插入、删除与修改。

三、操作要点:1.启动SQL 查询分析器2.掌握进行插入、删除与修改分别是INSERT 、DROP 和UPDATE四、注意事项:1.注意每次对表的修改,命令执行完后要查看表的变动刷新表。

2.特别注意在执行插入、删除与修改等更新操作时,要保证数据的完整性。

3.SQL Server 2000 增加了删除属性的命令。

五、实验学时:2学时六、实验重点及难点1.T-SQL 语句对基本表的定义进行删除与修改,并插入基本表数据。

2.T-SQL 语句对数据库操作的灵活控制功能。

七、实验步骤:1.启动SQL 查询分析器;2.选择SQL SERVER 后,按确认;3.选择University 数据库;4.验证如下例题:4.1 修改基本表①向基本表Students 中增加“入学时间”属性列,其属性名为Sentrancedate ,数据类型为DATETIME 型。

②将Sage(年龄)的数据类型改为SMALLINT 型。

③删除Sname(姓名)必须取唯一值的约束。

说明:⑴ 为了保证后面例子能够顺利运行,请大家一定将属性列Sentrancedate 从Students 表中删除。

⑵ 为了调试SQL 语句方便,这里没有在表Reports 中增加参照完整性约束,甚至没有表5.3 关系Students表5.4 关系Courses定义主键。

4.2 删除Students表。

说明:此表删除后,请立即将其建立起来,以便后面的例子使用。

4.3 向表中添加元组①将一个学生元组(S01,王建平,男,21,计算机)添加到基本表Students中。

②请同学们用这个命令,按表5.3提供的数据,将其余5个学生的元组也添加到基本表Students中。

③向Courses表插入元组(‘C01’,’英语’,’’,4)。

④请同学们用这个命令,按表5.4提供的数据,将其余6门课程的信息插入Courses表中。

⑤将学习成绩的元组(‘S01’, ’C01’)添加到基本表Reports中。

实验三数据库的查询一、实验目的及要求1.熟练掌握SELECT查询语句的使用2.掌握无条件、有条件查询及查询结果排序与分组二、实验任务1.掌握查询语句的一般格式。

2.掌握无条件、有条件查询及查询结果排序与分组三、操作要点1.进行查询时先进入查询分析器2.明白了解无条件、有条件查询及查询结果排序与分组四、注意事项1.SELECT语句的基本语法格式2.SELECT语句的执行方法3.SELECT语句和ORDER BY子句的作用和用法4.SELECT语句和GROUP BY子句的作用和用法五、实验学时:4学时六、实验重点及难点1.SELECT语句的基本语法2.掌握数据汇总的方法七、实验步骤1、查询全体学生的详细记录。

2、查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。

3、查询选修了课程的学生学号。

4、查询数学系全体学生的学号(Sno)和姓名(Sname)。

5、查询所有年龄在19~22岁(包括19岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。

6、查询年龄不在19-22岁之间的学生姓名(Sname)及年龄(Sage)。

7、查询自动化系和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。

8、查询所有姓刘的学生的姓名(Sname)、学号(Sno)和性别(Ssex)。

9、查询课程名为“DB_设计”的课程号(Cno)和学分(Credits)。

10、查询以"DB_"开头,且倒数第2个汉字字符为“设”的课程的详细情况。

11、假设某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。

试查询缺少成绩的学生的学号(Sno)和相应的课程号(Cno)。

12、查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。

13、求学生的总人数14、求选修了课程的学生人数15、求课程和选修了该课程的学生人数16、求选修超过2门课的学生学号17、查询计算机科学系的学生及年龄不大于19岁的学生18、查询计算机科学系的学生与年龄不大于19岁的学生的交集19、查询计算机科学系的学生与年龄不大于19岁的学生的差集20、查询选修课程‘C01’的学生集合与选修课程‘C02’的学生集合的交集21、查询选修课程‘C01’的学生集合与选修课程‘C02’的学生集合的差集实验四连接、嵌套和集合查询一、实验目的及要求:1.熟练掌握连接、嵌套和集合查询的使用。

2.学习各种连接、嵌套和集合查询方法。

二、实验任务1.掌握连接、嵌套和集合查询语句的一般格式。

2.掌握连接、嵌套和集合查询的各种使用方法。

三、操作要点1.创建表时候,在查询分析器中输入程序,编译时查看附录的出错信息再进行修改。

2.函数除了系统函数以外也可以自定义函数。

3.为了避免程序丢失,把程序保存在到规定的目录中去。

四、注意事项1.注意T-SQL各种运算符、控制语句的功能及使用方法。

2.注意各种系统函数的调用方法。

五、实验学时:4学时六、实验重点及难点1.明白两个表之间的联系是通过公共属性实现的。

2.连接、嵌套和集合查询的各种使用方法。

3.多重嵌套的使用。

七、实验步骤1、求选修了课程的学生的学生姓名、课程号和成绩。

2、求选修了课程”c01”且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。

3、求学生学号、姓名以及其选修课程的课程名、成绩,但查询结果中只能有一个SNO 字段。

4、求年龄大于’李伟’的所有学生的姓名、系和年龄。

5、求选修了课程’C02’或’C03’的学生的学号、课程号、课程名和成绩。

6、求与‘李伟’年龄相同的学生的姓名和系。

7、求选修了课程名为’数据结构’的学生的学号和姓名。

8、求比数学系中某一学生年龄大的学生的姓名和系。

9、求比数学系中全体学生年龄大的学生的姓名和系。

10、求选修了课程C04的学生的姓名和系。

11、求与‘黄河’同系且同龄的学生的姓名和系。

12、求与‘黄河’同系,且年龄大于‘黄河’的学生的信息。

13、求数学系中年龄相同的学生的姓名和年龄。

14、检索至少选修所有授课程中一门课程的男学生姓名。

15、检索选修某课程的学生人数多于2人的课程名称。

16、查询被一个以上的学生选修的课程号。

17、求未选修课程’C04’的学生的姓名。

18、求选修了全部课程的学生的姓名。

19、求成绩比所选修课程平均成绩高的学生的学号、课程号、和成绩。

20、查询所有未选课程的学生姓名和所在系。

实验五数据库系统设计一、实验目的及要求1、通过实验使学生加深对数据完整性的理解,学会创建和使用触发器。

2、通过实验使学生加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。

3、通过实验使学生了解SQL Server的数据备份和恢复机制,掌握SQL Server中数据库备份和恢复的方法。

4、根据数据库系统设计的基本步骤,完成某一具体数据库系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能。

二、实验任务1、使用SQL设计触发器,通过SQL Server企业管理器定义它们。

2、在SQL Server企业管理器中,设置SQL Server的安全认证模式。

通过SQL Server企业管理器,实现对SQL Server的用户和角色管理。

分别通过SQL Server企业管理器和SQL的数据控制功能,设置和管理数据操作权限。

3、用企业管理器创建一个备份设备。

利用向导为学生选课数据库生成一个完全备份。

在企业管理器中恢复学生选课数据库4、完成某一具体系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行维护等功能,并提交数据库。

三、实验学时:8学时四、实验内容及步骤(一)创建和使用触发器(1)实验的内容使用SQL设计触发器,通过SQL Server企业管理器定义它们。

相关主题