一、实验目的
熟练掌握索引的建立与删除的方法,熟练掌握SQL的应用,熟
练掌握数据插入、修改和删除以及视图的创建及使用,为后继学习作准备。
二、实验属性
1、了解并掌握SQL企业控制管理器的使用;
2、掌握数据插入、修改、更新和删除。
3、掌握索引、视图的创建。
4、掌握索引、视图的删除。
三、实验仪器设备及器材
1、安装了SQL SERVER 2008的计算机。
四、实验要求
1、复习教材第三章,熟悉SQL语句。
2、SQL Server 2008环境。
3、掌握索引的建立和删除方法;
4、掌握sql语句下视图建立、修改和删除;
5、掌握sql语句进行视图查询;
6、掌握sql语句数据插入、修改和删除的一般格式及使用方法。
五、实验原理
SQL语言综合应用。
六、实验步骤
1、启动SQL查询分析器;
2、选择学生管理数据库;
1 建立索引
1.1 为学生选课数据库中的Student,Course,Sc三个表建立索引。其中Student表按“系别”升序建唯一索引 C1,Course表
按“课程名”降序建唯一索引C2,Sc表按“学号”升序和“课程号”升序建唯一索引C3。
1.2 在基本表Student的Sname(姓名)和Sno(学号)列上建立一个聚簇索引c4,而且Student中的物理记录将按照Sname值和Sno值
的升序存放。
2 删除索引
2.1删除以上所建索引C1、C2、C3。
3 建立视图
3.1 建立数学系学生的视图math_stu,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为
Sno,Sname,Sage,Sdept。
3.2 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图grade_stu。
3.3 定义一个反映学生出生年份的视图Student_birth。
3.4 定义一个视图AVGG,视图列中有课程号、这门课程的平均成绩,且平均成绩大于80分。
4 删除视图
4.1 删除3.3中建的视图。
5 查询视图
5.1 在数学系的学生视图math_stu中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。
5.2 在grade_stu视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(Cname)。
6 更新视图
6.1 将数学系学生视图math_stu中学号为200215123的学生姓名改为“黄海”。
6.2 向数学系学生视图math_stu中插入一个新的学生记录,其中学号为“S09”,姓名为“王海”,年龄为20岁。
7 插入数据
7.1给学生表插入一条数据(’95003’,’黎明’,’男’23,’计算机系’)
7.2 给选课表插入一个数据(‘95003’,’c01’,85)
8 修改数据
8.1 将学号为“95003”的学生年龄改为22岁,即要修改满足条件的一个元组的属性值。
8.2 将所有学生的年龄增加1岁。即要修改多个元组的值。
8.3将数学系所有学生的成绩置零。
9 删除数据
9.1 删除学号为“95003”的学生选修的课号为“C02”的记录。
9.2 删除所有学生的选课记录。
9.3 删除数学系所有学生的选课记录。
七、操作步骤
1 建立索引
1.1 为学生选课数据库中的Student,Course,Sc三个表建立索引。其中Student表按“系别”升序建唯一索引 C1,Course表
按“课程名”降序建唯一索引C2,Sc表按“学号”升序和“课程号”升序建唯一索引C3。
I、在创建查询框中分别输入以下建立索引SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s1.sinaimg.cn/small/006cu32Jzy6ULknit4Qc0&690)
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s4.sinaimg.cn/small/006cu32Jzy6ULknkefV23&690)
II 、执行SQL语句,其结果如下图所示:
1.2 在基本表Student的Sname(姓名)和Sno(学号)列上建立一个聚簇索引c4,而且Student中的物理记录将按照Sname值和Sno
值 的升序存放。
I 、在创建查询框中输入SQL语句,如下图所示:
II 、执行SQL语句,其结果如下图所示:
2 删除索引
2.1删除以上所建索引C1、C2、C3。
I 、在创建查询框中分别输入以下删除索引的SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s1.sinaimg.cn/mw690/006cu32Jzy6ULl71VAs40&690)
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s14.sinaimg.cn/mw690/006cu32Jzy6ULkYzF250d&690)
II 、执行SQL语句,其结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s4.sinaimg.cn/mw690/006cu32Jzy6ULkWM3D5e3&690)
3 建立视图
3.1 建立数学系学生的视图math_stu,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,
Sname,Sage,Sdept。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s14.sinaimg.cn/small/006cu32Jzy6ULkWPrdjed&690)
II 、执行SQL语句,在数据库列表中刷新,打开视图,右击“math_stu” ->编辑前200行,即可查到符合条件的视图表,如下
图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s10.sinaimg.cn/small/006cu32Jzy6ULlczyjL19&690)
3.2 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图grade_stu。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s6.sinaimg.cn/small/006cu32Jzy6ULlo5vHn75&690)
II 、执行SQL语句,在数据库列表中刷新,打开视图,右击“grade_stu”->编辑前200行,即可查到符合条件的视图表,如下图 所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s11.sinaimg.cn/small/006cu32Jzy6ULlo8tK2fa&690)
3.3 定义一个反映学生出生年份的视图Student_birth。
I、在创建查询框中输入SQL语句,如下图所示:
II、执行SQL语句,在数据库列表中刷新,打开视图,右击“Student_birth”->编辑前200行,即可查到符合条件的视图
表, 如下图所示:
3.4 定义一个视图AVGG,视图列中有课程号、这门课程的平均成绩,且平均成绩大于80分。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s2.sinaimg.cn/small/006cu32Jzy6ULlwPz3P01&690)
II 、执行SQL语句,在数据库列表中刷新,打开视图,右击“AVGG”->编辑前200行,即可查到符合条件的视图表, 如下图
所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s9.sinaimg.cn/small/006cu32Jzy6ULlwRfpmd8&690)
4 删除视图
4.1 删除3.3中建的视图。
I 、在创建查询框中输入SQL语句,如下图所示:
II 、执行SQL语句,在数据库列表中刷新,则在视图列表中查询不到表“Student_birth”,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s8.sinaimg.cn/small/006cu32Jzy6ULlx1XCv67&690)
5 查询视图
5.1 在数学系的学生视图math_stu中找出年龄(Sage)小于20岁的 学生姓名(Sname)和年龄(Sage)。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s16.sinaimg.cn/small/006cu32Jzy6UM4XcvYref&690)
II、执行SQL语句,输出结果如下图所示:
5.2 在grade_stu视图中查询成绩在85分以上的学生学号(Sno)、姓 名(Sname)和课程名称(Cname)。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s6.sinaimg.cn/small/006cu32Jzy6UM4Xt9vn05&690)
II 、执行SQL语句,输出结果如下图所示:
6 更新视图
6.1 将数学系学生视图math_stu中学号为200215123的学生姓名改为“黄海”。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s16.sinaimg.cn/small/006cu32Jzy6UM56yI7t2f&690)
II 、执行SQL语句,在数据库列表中刷新,打开视图,右击“math_birth”->编辑前200行,即可查到符合条件的视图
表, 如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s14.sinaimg.cn/small/006cu32Jzy6UM56AZjf3d&690)
6.2 向数学系学生视图math_stu中插入一个新的学生记录,其中学号为“S09”,姓名为“王海”,年龄为20岁。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s3.sinaimg.cn/small/006cu32Jzy6UM56rG1Af2&690)
II 、执行SQL语句,在数据库列表中刷新,打开视图,右击“math_birth”->编辑前200行,即可查到符合条件的视图
表, 如下图所示:
7 插入数据
7.1给学生表插入一条数据(’95003’,’黎明’,’男’23,’计算机系’)
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s2.sinaimg.cn/small/006cu32Jzy6UM5l58K5d1&690)
II 、执行SQL语句,在数据库列表中刷新,选中Student表->编辑前200行,结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s1.sinaimg.cn/small/006cu32Jzy6UM5liYiQa0&690)
7.2 给选课表插入一个数据(‘95003’,’c01’,85)
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s2.sinaimg.cn/small/006cu32Jzy6UM5l9eKdd1&690)
II 、执行SQL语句,在数据库列表中刷新,选中SC表->编辑前200行,结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s5.sinaimg.cn/small/006cu32Jzy6UM5l9HBq24&690)
8 修改数据
8.1 将学号为“95003”的学生年龄改为22岁,即要修改满足条件的一个元组的属性值。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s13.sinaimg.cn/small/006cu32Jzy6UM5ri5Y01c&690)
II 、执行SQL语句,在数据库列表中刷新,选中Student表->编辑前200行,结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s14.sinaimg.cn/small/006cu32Jzy6UM5rkUGx9d&690)
8.2 将所有学生的年龄增加1岁。即要修改多个元组的值。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s11.sinaimg.cn/small/006cu32Jzy6UM5rq90C8a&690)
II 、执行SQL语句,在数据库列表中刷新,选中Student表->编辑前200行,结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s1.sinaimg.cn/small/006cu32Jzy6UM5rtiWQb0&690)
8.3将数学系所有学生的成绩置零。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s9.sinaimg.cn/small/006cu32Jzy6UM5y6jK8c8&690)
II 、执行SQL语句,在数据库列表中刷新,选中SC表->编辑前200行,结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s3.sinaimg.cn/small/006cu32Jzy6UM5xV3Q652&690)
9 删除数据
9.1 删除学号为“95003”的学生选修的课号为“C02”的记录。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s11.sinaimg.cn/small/006cu32Jzy6UM5GZHtgda&690)
II 、执行SQL语句,在数据库列表中刷新,选中SC表->编辑前200行,结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s7.sinaimg.cn/small/006cu32Jzy6UM5Hgxue66&690)
9.2 删除所有学生的选课记录。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s13.sinaimg.cn/small/006cu32Jzy6UM5H7bOY5c&690)
II 、执行SQL语句,在数据库列表中刷新,选中SC表->编辑前200行,结果如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s14.sinaimg.cn/small/006cu32Jzy6UM5Hlx4F0d&690)
9.3 删除数学系所有学生的选课记录。
I 、在创建查询框中输入SQL语句,如下图所示:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s9.sinaimg.cn/small/006cu32Jzy6UM5MO4Ws08&690)
II 、执行SQL语句,在数据库列表中刷新,选中SC表->编辑前200行,结果如下图所示:
八、实验总结
通过此次上机实验,使我更加熟悉了对SQL语句及其应用,虽然是第一次上机调试但并不感到陌生。在SQL语句调试的过程中虽错误总是千奇百怪,但根据老师教授的知识很快的得以纠正,完成了本次实验,通过本次实验,深刻的意识到自身的不足,也明白了理论与实践的差距,同时自己学过的知识也得以加深理解与巩固,感谢老师给予我们机会,使我们的知识更加牢固!
附录
Student表:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s4.sinaimg.cn/small/006cu32Jzy6UM67z1Dl23&690)
Course表:
![视图、索引及数据更新—实验报告 视图、索引及数据更新—实验报告](http://s12.sinaimg.cn/small/006cu32Jzy6UM67BWQz2b&690)
SC表: