《2022年sql数据库实例 .pdf》由会员分享,可在线阅读,更多相关《2022年sql数据库实例 .pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库设计及应用实验一、实验内容创建数据库:包括 Student, Course, Enroll, Statistics 表, 表的结构如下:Student (sno, sname, age, sex) Course (cno, cname, credit) Enroll (sno, cno, grade) Statistics (sno, cNumber, creditSum) 说明:cNumber是 sno学生选修课程的数目; creditSum是 sno学生选修课程的总学分。1、设计并在 MS SQL Server 2000中创建以上表结构,并设置完整性约束。2、查询所有选修课程的学生的
2、基本信息、课程信息及相应的考试成绩。3、查询所有学生的信息, 若已选课就还要给出选修课程的信息及考试成绩。4、查询所有课程的信息, 若课程有学生选修就还要给出选修课程的学生的信息及考试成绩。5、查询选修名为“数据库”的课程的考试成绩最高的学生的信息。6、对 Student的 age创建规则,满足 18 age 25,并给出验证实例及验证结果。7、创建触发器:当学生选修一门新的课程后,Statistics 表的cNumber自动加 1,且 creditNumber自动增加新选课程的学分。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - -
3、- 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - 8、创建视图:找出所有已修学分超过6、所修课程平均分不低于60 的学生的基本信息、 以及所修课程的平均分。 按照平均分排序,若平均分相同按照学号排序。9、 对于如下一组数据操作:(1)select * from course; (2)select * from course where cname= 数据库 (3)select * from course where credit=3 (4)select * from course where credit2 and credit=18
4、and age=60 and creditSum6 order by avg_grade,d.sno select *from Transcript 执行结果如图 13 所示。执行结果分析:列出的学生都按平均成绩大小从低到高排列且平均分都大于60.当平均分相同时,表中冉从宝和杨璐就按照学号大小从小低到高排列。9、对照对 Course表的 credit 属性创建索引和去掉Course表的 credit属性上创建的索引查询的执行计划。对 Course表的 credit 属性创建索引为:create index credit_index on Course(credit) (1) 对比有无索引 cr
5、edit_index 情形下, “select * from Course”的查询的执行计划分别如图 14、图 15所示。图 13 Transcript 视图表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 19 页 - - - - - - - - - 结果分析: 由图 14,、图 15 可知当查询是针对整个表进行,创建索引和不创建索引,查询的执行计划都是一样的。(2)对比有无索引 credit_index 情形下,“select * from course where
6、 cname= 数据库 ”的查询的执行计划分别如图16、图 17 所示。图 14 有索引情形下的查询的执行计划图 15 无索引情形下的查询的执行计划图 16 有索引情形下的查询的执行计划图 17 无索引情形下的查询的执行计划名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 19 页 - - - - - - - - - 结果分析: 由图 16,、图 17 可知当条件针对的字段不是创建了索引的那个字段时,索引是无效的。有索引和无索引,查询的执行计划都是一样的。(3)对比有无索
7、引 credit_index 情形下,“select * from course where credit=3 ”的查询的执行计划分别如图18、图 19所示。结果分析: 由图 18,、图 19 可知 where条件为 credit 的属性,索引起效。有索引的查询效率比没有索引的查询效率高数十倍。(4) 对比有无索引 credit_index 情形下, “select * from course where credit2 and credit5”的查询的执行计划分别如图20、图 21 所示。图 18 有索引情形下的查询的执行计划图 19 无索引情形下的查询的执行计划名师资料总结 - - -精品
8、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 19 页 - - - - - - - - - 结果分析: 由图 20,、图 21 可知 where条件为 credit 的属性,索引起效。有索引的查询效率比没有索引的查询效率高数十倍。(5)对比有无索引credit_index 情形下,“update course set credit=3 where credit=2”的查询的执行计划分别如图22、图 23 所示。图 20 有索引情形下的查询的执行计划图 21 无索引情形下的查询的执行计划图 22
9、有索引情形下的查询的执行计划图 23 无索引情形下的查询的执行计划名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 19 页 - - - - - - - - - 结果分析: 由图 20,、图 21 可知 where条件为 credit 的属性,索引起效。有索引的查询效率比没有索引的查询效率高数十倍。索引小结:索引是对数据库表中的一列或多列的值进行排序的结构,有助于更快地获取信息。只有当经常查询索引列中的数据时,才需要创建索引。折衷:索引提高查询速度vs. 索引占用磁盘空间
10、,降低数据更新执行速度。若应用中大多数是数据更新操作 (插入、删除和修改)。 则应限制索引的数量。10、将表 Student、Course、Enroll 作内连接的结果发布为HTML 网页格式。(1)在企业管理器的控制台中选中SC 数据库, “工具”“向导”“管理”“web助手向导”如图 24 所示。图 24 启动 Web 助手向导名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 19 页 - - - - - - - - - (2)点击“下一步”,选择数据库 SC如图 2
11、5 所示。(3)在选择 SC数据库后,单击“下一步” ,选择和设置如图26 所示。图 25 选择数据库SC 图 26 Web作业命名和设置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 19 页 - - - - - - - - - (4)单击“下一步”,在弹出的“编写Transact-SQL查询”对的话框中的文本框中输入表 Student、Course、Enroll 作内连接的查询语句,如图27 所示。(5)单击“下一步”,设置调度 Web助手作业,如图 28 所示。图
12、 27 表Student 、Course、Enroll作内连接的查询图 28 设置调度Web 助手作业名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 19 页 - - - - - - - - - (6)单击“下一步”,设置调度更新间隔,如图29所示。(7)单击“下一步”,设置发布 Web页面的物理存储位置,如图30所示。图 29设置调度更新间隔图 30 设置发布 Web页面的物理存储位置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
13、 - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 19 页 - - - - - - - - - (8)设置 Web页的格式,如图 31 所示。(9)查看发布的 WebPage1.htm网页。查看当前 Enroll 表的数据,结果如图32 所示图 31 设置 Web页的格式图 32 Enroll 中的数据发布结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 19 页 - - - - - - - - - 测试Web页的更新方式有效性。在 Enroll 表中插入以下数据:insert into Enroll values (2008006,004,67) insert into Enroll values (2008006,005,84) 执行该 SQL 语句后,刷新所发布的网页,结果如图33 所示。结果显示:设置的Web页的更新方式的是有效的。图 32 更新后 Enroll 中的数据发布结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 19 页 - - - - - - - - -
限制150内