收藏 分享(赏)

合肥工业大学数据库实验报告.doc

上传人:HR专家 文档编号:5011361 上传时间:2019-01-30 格式:DOC 页数:41 大小:3.41MB
下载 相关 举报
合肥工业大学数据库实验报告.doc_第1页
第1页 / 共41页
合肥工业大学数据库实验报告.doc_第2页
第2页 / 共41页
合肥工业大学数据库实验报告.doc_第3页
第3页 / 共41页
合肥工业大学数据库实验报告.doc_第4页
第4页 / 共41页
合肥工业大学数据库实验报告.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、计算机与信息学院数据库系统概论实验报告专 业 班 级学生姓名及学号课程教学班号任 课 教 师实验指导教师实验地点四号实验楼第四机房 2013 2014 学年 第二学期实验 1 使用向导创建和删除数据库一、 实验目的1 熟悉 SQL Server 2008 中 SQL Server Management Studio 的环境;2 理解数据库的逻辑结构和物理结构;3 掌握使用向导创建和删除数据库的方法;二、 实验要求1. 熟练使用 SSMS 进行数据库的创建和删除;2.完成实验报告(实验报告的格式见附录) ;三、 实验内容设有一学籍管理系统,其数据库名为“EDUC”。初始大小为 10MB,最大为

2、50MB,数据库自动增长,增长方式是按 5比例增长;日志文件初始为 2MB,最大可增长到 5MB,按 1MB 增长。数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:sql_data”。日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:sql_data”。1、使用 SQL Server Management Studio(简称 SSMS)创建数据库;2、修改数据库 EDUC1 的相关属性值,如数据文件和日志文件的名字、大小、增长方式、 存储路径等;3、数据库的备份

3、与恢复;4、使用向导删除上面建立的数据库;4、实验步骤1使用 SQL Server Management Studio(简称 SSMS)创建数据库。(1)启动 SSMS在开始菜单中:所有程序Microsoft SQL Server 2008 SQL Server Management Studio ,如下图所示:(2)建立数据库在“对象资源管理器”窗口中,建立上述数据库 EDUC。在数据库节点上,右击选择新建数据库,按实验内容的要求,对数据文件和日志文件进行设置。如下所示,点击确定。(3)用同样的方法建立一个同样属性的数据库,数据库名为 EDUC1。2、修改数据库 EDUC1 的相关属性值,如

4、数据文件和日志文件的名字、大小、增长方式、存储路径等;选择数据库节点 EDUC1,右击-属性-文件,根据自己的需要,对相应的属性值进行相应的调整,点击确定。如下图所示:3、数据库的备份与恢复:SQL Server 提供了“分离/附加”数据库、 “备份/还原”数据库、复制数据库等多种数据库的备份与恢复的方法,这里熟悉使用“分离/附加”的方法。(1)数据库的分离选择数据库节点 EDUC,右击-任务-分离,进入如下图所示的界面,选择更新统计消息下的复选框,单击确定,完成数据库的分离,此时可以将分离后的数据库的数据文件和日志文件拷贝到 U盘里(2)数据库的附加在对象资源管理器中,选择数据库节点,右击-

5、附加-添加,在文件件 E:sql_data 中选择数据文件student_data.mdf,单击确定,如下图所示,再单击确定,完成数据库的附加。4. 使用向导删除上面建立的数据库。用 SSMS 删除建立的数据库 EDUC。在对象资源管理其中,选中数据库 EDUC 节点,右击-删除即可。五、实验总结1、身份验证时,出现过失败现象,后来解决了验证问题。2、如果分离前没有关闭所有窗口,可导致分离失败。实验 2 使用 SQL 语句删除和创建数据库1、实验目的1. 了解 SQL Server 2005/2008 数据库的逻辑结构和物理结构。2. 掌握使用 SQL 语句创建和删除数据库。二、实验要求1.

6、熟练使用 Microsoft SQL Server Management Studio 进行数据库的创建和删除操作。2. 完成实验报告。三、实验内容使用 SQL 语句创建数据库 userdb1。四、实验步骤1创建数据库 userdb1 的 SQL 语句,注意各个参数的意义:create database userdb1on(name=userdb1_data,-数据文件的逻辑名称,注意不能与日志逻辑同名filename=e:sql_datauserdb1.mdf ,-物理名称,注意路径必须存在size=5,-数据初始长度为 5Mmaxsize=10,-最大长度为 10Mfilegrowth=1

7、)-数据文件每次增长 1Mlog on( name=userdb1_log, filename=e:sql_datauserdb1.ldf , size=2 , maxsize=5 , filegrowth=1)具体如下图所示:2. 根据步骤 1 的 sql 语句,写出创建实验 1 中数据库 EDUC 的 sql 语句,建立数据库 EDUC。3. 用 SQL 语句删除步骤 1 建立的数据库 userdb1。五、实验总结1、应注意区分数据文件的逻辑名称和日志逻辑名称。2、执行了 SQL 语句后,只有在数据库节点上刷新一次才能看到新建的数据库。实验 3 使用 SQL 语句创建和删除表一、实验目的1

8、了解表的结构特点。2了解 SQL Server 的基本数据类型。3学会使用 T-SQL 语句创建表。二、实验要求1. 完成 SQL 语句创建和删除基本表。2. 完成实验报告。三、实验内容在数据库 EDUC 中,创建如下几个表:表 3.1 class 表(班级信息表)字段名称 类 型 允许空值 主 键 说 明ClsNO Char(6) NOT NULL 是 班号ClsName Varchar(16) NOT NULL 班名Director Varchar(10) NULL 辅导员Specialty Varchar(30) NULL 专业表 3.2 student 表(学生信息表)字段名称 类 型

9、 允许空值 主 键 说 明Sno Char(8) NOT NULL 是 学号Sname Varchar(10) NOT NULL 姓名Sex Char(2) 性别:男、女ClsNO Char(6) NULL 班级的编号, (外键)参照表 ClassSaddr Varchar(20) 住址Sage numeric(3, 0) 年龄,大于 10,但小于 30 岁Height Decimal(4,2) 身高表 3.3 course 表(课程信息表)字段名称 类 型 允许空值 主 键 说 明Cno Char(4) NOT NULL 是 主键Cname Varchar(16) NOT NULL 课程的名

10、称Cpno char(4) NULL 先修课程的课程号(外键),参照 cnoCcredit Tinyint 学分表 3.4 sc 表(学生选课成绩表)字段名称 类 型 允许空值 主 键 说 明Sno Char(8) NOT NULL 是 学号,参照 Student,与 Cno 组成主键CNO Char(4) NOT NULL 是 课程号,参照 Coursegrade Numeric(4,1) NULL 成绩四、实验步骤1、打开查询窗口,输入创建基本表的 sql 语句, 在可用数据库的下拉框中,选择数据库 EDUC 或者使用 use EDUC,首先创建 class 表。2、自己编写 SQL 语句

11、创建 class 表,student 表,course 表和 sc 表,截图如下:五、实验总结1、在创建表的时候,应该先创建 class 表,之所以先创建 class 表,是因为 class 表中的主码clsno 是 student 表中的外码,先创建 student 表会出错。2、在创建表时要明确主码或者外码或者其它属性。实验 4 数据更新操作一、实验目的1.熟悉使用 UPDATE/INSERT/DELETE 语句进行表操作;2.能将这些更新操作应用于实际操作中去;二、实验要求1.完成下面的实验内容,并提交实验报告;2.在实验报告中附上相应的代码;三、实验内容(1) 向表(Student)中

12、插入数据插入数据之后使用命令:Select * from Student; 检查插入数据的正确性Sno Sname Ssex ClsNO Saddr Sage Height20090101 王军 男 CS01 下关 40# 20 1.7620090102 李杰 男 CS01 江边路 96# 22 1.7220090306 王彤 女 MT04 中央路 94# 19 1.6519940701 吴杪 女 PH08 莲化小区 74# 18 1.60(2)向表(Class)中插入数据插入数据之后使用命令:Select * from Class; 检查插入数据的正确性(3)向表(Course )中插入数据

13、Cno Cname Cpno Credit0001 高等数学 Null 60003 计算机基础 0001 30007 物理 0001 4插入数据之后使用命令:Select * from Course; 检查插入数据的正确性(4)向表(SC )中插入数据SNO CNO Grade20090101 0001 90ClsNO ClsName Director SpecialtyCS01 计算机一班 王宁 计算机应用CS02 计算机二班 王宁 计算机应用MT04 数学四班 陈晨 数学PH08 物理八班 葛格 物理20090101 0007 8620090102 0001 8720090102 0003

14、 7620090306 0001 8720090306 0003 9319940701 0007 85插入数据之后使用命令:Select * from sc; 检查插入数据的正确性(5) 对于 student 表,将所有班级号为CS01的,并且年龄不大于 20 岁的学生的班级号改为CS02 。(6) 对于 student 表,删掉所有年龄不小于 20 岁,并且班级号为CS02的学生的记录。这里要分为两步:第一步:在 SC 表上定义级联删除(思考为什么?) ,如下所示:第二步:执行删除操作,如下图所示:(7)对于 student 表,插入一条新记录,它的具体信息为,学号:20071101、姓名:

15、张三、性别:男、年龄:19、班级编号:CS01 、身高:1.78、地址:下关 50#;对于 class 表,插入一条记录,具体信息为,班级号:GL01,班级名称:地理一班,辅导员:葛格,专业:地理(8) 对于 student 表,将年龄最小的学生的家庭地址去掉。(9) 对于 student 表,将平均年龄最小的一个班级编号改为GL01四、实验步骤1、向表(student)中插入数据,并使用命令:“Select * from Student;” 检查插入数据的正确性,截图如下:2、向表(Class)中插入数据并检查正确性。3、向表(Course )中插入数据并检查正确性。4、向表(SC )中插入

16、数据并检查正确性。5、对于 student 表,将所有班级号为CS01的,并且年龄不大于 20 岁的学生的班级号改为CS02,检查更改后的 student 表。6、对于 student 表,删掉所有年龄不小于 20 岁,并且班级号为CS02的学生的记录。(1) 、在 SC 表上定义级联删除。 (2) 、执行删除操作7、对于 student 表,插入一条新记录,它的具体信息为,学号:20071101、姓名:张三、性别:男、年龄:19、班级编号:CS01 、身高:1.78、 地址:下关 50#;对于 class 表,插入一条记录,具体信息为,班级号:GL01,班级名称:地理一班,辅导员:葛格,专业

17、:地理8、对于 student 表,将年龄最小的学生的家庭地址去掉。9、对于 student 表,将平均年龄最小的一个班级编号改为GL01 。五、实验总结1、在处理上要小心谨慎,在插入时各项应该一一对应,否则会出现错误。2、使用 select 语句查询时,应该以选中执行的方式检查,否则插入语句执行两次会报错。3、当在学生表上删除该生时,也应删除其相应的选课记录,所以要在 sc 表上定义级联。4、对于任务 9,对班级平均成绩进行从小到大排序,且选择删除第一个(top)会更简单。实验 5 创建和删除索引一、实验目的1 了解索引的类型和应用。2 学会用 SQL 语句对表创建和删除索引。二、实验要求1

18、. 了解索引类型并比较各类索引的不同之处。2完成索引的创建和删除,并提交实验报告。三、实验内容1. 分别建立以下索引(如果不能成功建立,请分析原因)(1) 在 student 表的 sname 列上建立普通降序索引,以下两种方法任选一个。方法一:利用向导创建;展开 student 表节点,索引-新建索引,如下图,点击添加按钮,选择 sname,点击确定,再点击确定。方法二:使用语句创建索引;(2) 在 course 表的 cname 列上建立唯一索引。(3) 在 sc 表的 sno 列上建立聚集索引,将出现错误,如下图,请分析原因并完成该操作。(4) 在 sc 表的 sno(升序), cno(

19、升序)和 grade(降序)三列上建立一个普通索引。2. 删除索引将 student 表的 sname 列上的聚集索引删掉。四、实验步骤1、 分别建立以下索引(如果不能成功建立,请分析原因)(1) 在 student 表的 sname 列上建立普通降序索引,以下两种方法任选一个。方法一:利用向导创建;展开 student 表节点,索引-新建索引,如下图,点击添加按钮,选择 sname,点击确定,再点击确定。方法二:使用语句创建索引;(2) 在 course 表的 cname 列上建立唯一索引。(3) 在 sc 表的 sno 列上建立聚集索引,将出现错误,如下图,请分析原因并完成该操作。(4)

20、在 sc 表的 sno(升序), cno(升序)和 grade(降序)三列上建立一个普通索引。2、 删除索引将 student 表的 sname 列上的聚集索引删掉。五、实验总结1、应明确建立的是唯一索引还是聚集索引,还要注意一个基本表上只能建立一个聚集索引。2、记得索引的功能是便于查找,而修改或是删除索引是不会更改表的内容的。实验六 数据查询一、实验目的1观察查询结果, 体会 SELECT 语句实际应用;2要求学生能够在查询分析器中使用 SELECT 语句进行简单查询。3. 熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 二、实验要求1. 完成简单查询和连接查询操作,并验收实验

21、结果提交实验报告三、实验内容所有的查询全部用 Transact-SQL 语句实现。此部分查询包括投影、选择条件表达、数据排序等。对 EDUC 数据库实现以下查询:1) 查询计算机应用专业的学生学号和姓名;2) 查询选修了课程的学生学号,理解为什么使用 DISTINCT,并比较未使用 distinct 的情况;3) 查询选修课程 0001 且成绩在 8090 之间的学生学号和成绩,并将成绩乘以系数 0.75 输出;4) 查询计算机应用和数学专业的姓“张”的学生的信息。5)查询“0001”课程的成绩不低于李杰的学生学号和成绩;6)查询其他系中比计算机应用专业学生年龄都小的学生信息;7)查询没有选修

22、“0002”课程的学生姓名;8) 查询选修了全部课程的学生的姓名,首先向 SC 表中插入一条记录,具体信息为:学号:20090102,课程号:0007,成绩:70,这里有两种方法;方法一:使用嵌套查询方法二:使用 exists 谓词删除所插入的记录;Delete from sc where sno=20090102and cno=0007;四、实验步骤1、查询计算机应用专业的学生学号和姓名;2、查询选修了课程的学生学号,理解为什么使用 DISTINCT,并比较未使用 distinct 的情况;3、查询选修课程 0001 且成绩在 8090 之间的学生学号和成绩,并将成绩乘以系数 0.75 输出

23、;4、查询计算机应用和数学专业的姓“张”的学生的信息。5、查询“0001”课程的成绩不低于李杰的学生学号和成绩;6、查询其他系中比计算机应用专业学生年龄都小的学生信息;7、查询没有选修“0002”课程的学生姓名;8、查询选修了全部课程的学生的姓名,首先向 SC 表中插入一条记录,具体信息为:学号:20090102,课程号:0007,成绩:70,这里有两种方法;方法一:使用嵌套查询方法二:使用 exists 谓词五、实验总结1、因为在所建表中未有“计算机应用”专业,所以可用 class.specialty=计算机应用进行查询。2、对于问题“2”中的用distinct进行查询,这样做可避免了选课学

24、生重复出现。实验七 使用聚集函数的 SELECT 语句一、实验目的1. 熟练掌握数据查询中的分组、统计、计算和组合的操作方法。2. 进一步掌握 SQL Server 查询分析器的使用,加深对 SQL 语言的嵌套查询语句的理解。二、实验要求1.在实验之前做好准备。2.完成实验,并验收实验结果提交实验报告。三、实验内容在数据库 EDUC 中用 SQL 语句实现如下查询:1)求学生的总人数。2)求选修了课程的学生人数。3)求课程的课程号和选修该课程的人数。4)求选修课程不小于 2 门课的学生学号。四、实验步骤1、求学生总人数。2、求选修了课程的学生人数。3、求课程的课程号和选修该课程的人数。4、求选

25、修课程不小于 2 门课的学生学号。五、实验总结1、应该格外注意 where 的后面是不能使用聚集函数的。实验八 视图的定义与使用一、实验目的1. 熟悉和掌握对数据表中视图的查询操作和 SQL 命令的使用;2. 熟悉和掌握对数据表中视图的更新操作和 SQL 命令的使用,并注意视图更新与基本表更新的区别与联系;3. 学习灵活熟练的进行视图的操作,认识视图的作用。二、实验要求1. 在实验开始之前做好准备工作。2. 实验之后提交实验报告,思考视图和基本表的区别三、实验内容1.定义视图在 EDUC 数据库中,以 Student、Course 和 SC 表为基础完成一下视图定义:1) 将 Student,

26、 Course 和 SC 表中学生的学号,姓名,课程号,课程名,成绩定义为视图 V_SC_G;2) 定义一个反映学生出生年份的视图 V_YEAR;3) 将各位学生选修课程的门数及平均成绩定义为视图 V_AVG_S_G;4) 将各门课程的选修人数及平均成绩定义为视图 V_AVG_C_G。2.使用视图1)查询以上所建的视图结果。(1)2)查询平均成绩为 90 分以上的学生学号、姓名和成绩;3)查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;4)查询 1995 年出生的学生学号和姓名。四、实验步骤1.定义视图在 EDUC 数据库中,以 Student、Course 和 SC 表为基础完成一下

27、视图定义:5) 将 Student, Course 和 SC 表中学生的学号,姓名,课程号,课程名,成绩定义为视图 V_SC_G;6) 定义一个反映学生出生年份的视图 V_YEAR;7) 将各位学生选修课程的门数及平均成绩定义为视图 V_AVG_S_G;8) 将各门课程的选修人数及平均成绩定义为视图 V_AVG_C_G。2.使用视图1)查询以上所建的视图结果。(1)(3) (4)2)查询平均成绩为 90 分以上的学生学号、姓名和成绩;3)查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;4)查询 1995 年出生的学生学号和姓名。五、实验总结 1、如果当两个表中均出现同一个属性时,应该在

28、此变量前正确表明是哪个表。2、注意正确找出表与表之间的连接关系,否则错误很容易发生。实验九 触发器的创建与使用一、实验目的本实验的目的是使学生进一步掌握 SQL Server 触发器的创建及使用方法,加深对 SQL 触发器的理解。通过对数据的更新操作体会其触发器的作用。二、实验要求1. 在实验之前做好准备2. 掌握修改模式的方法3. 掌握游标的使用4. 实验后提交实验报告,并验收实验结果三、实验内容1.根据 student 表的学生记录,修改 class 表的 c_total 的值,利用游标来实现;3. 创建 INSERT 触发器 t_inst_stu(在 student 表上创建) ,并进行验证。请自行完成一次性插入多条记录的操作。1)建立触发器2)查询原有记录

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

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报