7索引和视图

  1. 掌握索引和视图的基本概念和功能。
  2. 掌握利用SQL Server Management Studio和Transact-SQL语句创建、维护索引的方法。
  3. 掌握利用SQL Server Management Studio和Transact-SQL语句创建、维护视图的方法。
  4. 掌握通过视图插入、修改、删除基本表中数据的方法及注意事项。

1.利用SQL Server Management Studio为表student的classsno字段创建非聚集非唯一索引UC_classno。

create index UC_classno on student (studentno)

2.利用Transact-SQL语句在teaching数据库中的teacher表的tname列上创建非聚集唯一索引UQ_tname。若该索引已存在,则删除后重建。

if exists (select * from sys.indexes where name='UQ_tname')
drop index teacher.UQ_tname
create unique index UQ_tname on teacher(tname)

3.利用SQL Server Management Studio查看索引被查询优化器使用的情况。(输入查询语句后单击工具栏上“显示估计的执行计划”按钮)

select * from student where classno='160501'
select * from teacher where tname='韩晋升'

4.利用Transact-SQL语句修改UQ_tname的索引属性,当执行多行插入操作时出现重复键值,则忽略该记录,且设置填充因子为80%。

  alter index UQ_tname on teacher rebuild with(ignore_dup_key=on,pad_index=on,fillfactor=80)

5.利用SQL Server Management Studio在teaching数据库中创建视图v_course_avg,查询每门课程的课程号、课程名及修改该课程的学生的期末成绩平均分,并且按平均分降序排序。

create view v_course_avg as
select course.courseno,AVG(final) from score,course where score.courseno=course.courseno group by course.courseno

6.利用Transact-SQL语句在teaching数据库中创建视图v_age,查询年龄在18周岁及以上的学生的学号、姓名、性别、出生日期和班级编号。若该视图已存在,则删除后重建。

     if exists(select * from sys.views where name='v_age')
drop view v_age
create view v_age as 
select sname,sex,classno from student where YEAR(getdate())-YEAR(birthday)>=80

7.利用Transact-SQL语句在teaching数据库中创建视图v_teacher_course,包含教师编号、教师姓名、职称、课程号、课程名和任课班级。

     create view v_teacher_course as 
select teachno,tname,prof,cname,courseno,classno from teacher,course,student

8.利用Transact-SQL语句修改v_age视图定义,添加WITH CHECK OPTION选项

       alter view v_age as
select sname,sex,classno from student where YEAR(getdate())-YEAR(birthday)>=80
with check option

9.通过视图V_teacher_course将教师编号为t05017的教师职称更改为“副教授”。

update v_teacher_course set prof='副教授' where teachno='t05017'

10.利用Transact_SQL语句删除创建的索引和视图。

drop index student.UC_classno,teacher.UQ_tname
drop view v_course_avg,v_age,v_teacher_course
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值