实验七
一.实验目的:
掌握视图的创建、查询、删除及通过视图修改基本表中的数据 掌握索引的创建、删除
二.实验内容:(1、2、4、5题写到实验报告中) 1. 使用命令对数据库stuinfo完成下列操作: 1)创建某个班的学生视图V1,包括Sno, Sname, Sbirthday, sclass。 2)创建某门课的选课视图V2并与架构dbo绑定,视图包括Cno、Cname、Sno、Sname、Degree。 3)创建每个学生平均成绩的视图V3,包括Sclass、Sno、Sname、Davg(平均成绩) 4)查询视图V3,检索平均成绩大于等于80分的学生信息。 5)修改视图V2中的Degree列,将某门课的成绩减去5分。(修改前后注意查看基本表中的相关数据) 6)调用存储过程sp_helptext查看视图V3的定义。
7)删除视图V1。 2.使用命令创建如下索引: 1) 为score表创建sno和cno列的唯一聚集索引,要求插入或修改时忽略重复键值。 2)为Course表的Cname列创建一个唯一非聚集索引,要求填充 50% 的叶级页。 3)为视图V2创建一个按Sno升序的唯一聚集索引,再创建一个先按cno升序,再按Degree降序的非聚集索引。 4)调用存储过程sp_helpindex查看score表的索引信息。 3. 全文索引
在student表上添加住址address(varchar(100))列和简历resume(text)列,然后输入字段值。在数据库stuinfo中创建全文目录CT1。在student表中创建包含address列和resume列的全文索引S_ar。然后利用全文索引进行如下查询: 1)查询住址address中包含”Beijing”(北京)的学生姓名。
Select sname FROM student Where CONTAINS( address, 'beijing' ) 2)查询住址address中包含“SHANDONG province”(山东省)的学生姓名。
Select sname FROM student Where CONTAINS( address, '\3)查询住址address中以“hu”(湖)开头单词的学生的学号和姓名。 Select sno,sname FROM student Where CONTAINS( address, '\
4)查询resume列中有“graduate”字样和“computer”字样相邻的学生的姓名。 Select sname FROM student Where CONTAINS(resume, ' graduate NEAR computer ' ) 4. 默认对象与规则
1)创建默认对象con1,取值为“男”,并将其绑定到student表的性别列和teacher表的性别列,然后解除绑定。
2) 创建规则r1,限定取值范围为0到100,并将其绑定到score表的degree列,然后解除绑定。 5. 创建存储过程
1)①创建一个存储过程p1,查询指定学号的学生的姓名和平均分,要求姓名和平均分使用返回参数。
②执行该存储过程查询学号为101的学生的姓名和平均分。
2)①创建存储过程P2,根据指定的学号和课程号判断成绩等级(A、B、C、D、E)(如果degree>=90则为A,依次类推,不及格为E)。
②执行该存储过程查看学号为101、课程号为3-105的成绩等级。
3)①创建存储过程,检查指定学号的学生是否有选课。有就输出其姓名、课程名和成绩,没有就输出“该生无选课”。
②执行该存储过程分别查看学号为和学生的选课情况。*/