实验四 索引和视图参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
索引
--为表student中SName属性建立惟一索引
create unique index snameindex on student(SName)
--为teacher中的tname属性建立惟一聚集索引。
由于sqlserver2005在主键和具有unique约束的属性上自动建立了索引,且在主键上自动建立了聚集索引,因此必须移除主键(或其它聚集索引),然后才能在tname上建立聚集索引create unique clustered index tnameindex on teacher(tname)
移除主键
然后还原Tno为teacher表的主键
--利用系统存储过程sp_helpindex查看表student上的所有索引。
exec sp_helpindex student
--利用系统存储过程sp_rename将表student上的索引改名。
exec sp_helpindex student
exec sp_rename 'student.snameindex','snameindex2'
--删除表student中的惟一索引。(注意,sqlserver2005在主键和具有unique约束的属性上自动建立了索引,要删除这些索引,必须先取消这些属性的主键或unique性质(通过修改表),才能删除索引,不能直接删除索引)
drop index student.snameindex2
--视图
--建立视图teacherview1(无check option选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。
create view teacherview1
as
select Tno, TName, DepID
from teacher
where TName like '张%'
--建立视图teacherview2(带check option选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。
create view teacherview2
as
select Tno, TName, DepID
from teacher
where TName like '张%'
with check option
--建立视图teacherview3(带encryption选项),只显示教师表中姓张的教师的教师编号、教师姓名、所在系。
create view teacherview3
with encryption
as
select Tno, TName, DepID
from teacher
where TName like '张%'
--分别向teacherview2、teacherview1中插入记录(’866’,’杨志’,3),体会with check option选项的作用。
insert into teacherview1 values('866','杨志',3)
insert into teacherview2 values('867','王五',3)
--利用sp_helptext分别查看teacherview1、teacherview3的定义,体会with encryption 的作用。
exec sp_helptext teacherview1
exec sp_helptext teacherview3
--创建视图scoreview(sno,sname,average),用来显示学生的学号、姓名,平均成绩。create view scoreview(sno,sname,average)
as
select t. SN, t.SName, s.ave
from student t, (select SNo, avg(score) ave from sc group by SNo) s
where t.SNo=s.SNo
--利用系统存储过程将teacherview2改名为tempview并删除。
sp_rename teacherview2,tempview
drop view tempview