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