一、实验目的和要求
1.掌握SQL视图建立、修改和删除。
2.掌握SQL视图查询。
3.掌握索引的建立和删除方法。
二、实验内容
1 建立视图
【SY7-01】建立计算机系(系号都下DX01)学生的视图ST1。
【SY7-02】建立计算机系(系号DX01)学生的视图ST2,并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生。
CREATE VIEW ST2
AS
SELECT Sno,Sname,Ssex,Sbirth,Sage,Dno
from student
where Dno='DX01'
with check option;
【题SY7-03】建立计算机系选修了1号课程的学生的视图ST3。
CREATE VIEW ST3
AS
SELECT student.Sno,Sname,Ssex,Sbirth,Sage,Dno,Cno
from student,SC
where student.Sno=SC.Sno and
Dno='DX01'and Cno='1';
【题SY-04】将学生的学号及他的平均成绩定义为一个视图ST4。
CREATE VIEW ST4(Sno,average)
AS
SELECT Sno,avg(Grade)
from SC
group by Sno;
Y7-05】定义一个反映学生年龄的视图ST5。
CREATE VIEW ST5(Sno,Sname,Sage)
AS
SELECT Sno,Sname,year(getdate())-year(Sbirth)
from Student;
【SY7-06】建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图ST6。
CREATE VIEW ST6
AS
SELECT student.Sno,Sname,Cname,Grade
from Student,SC,Course
where Student.Sno=SC.Sno and Course.Cno=SC.Cno;
【SY7-07】建立学生的学号(Sno)、姓名(Sname)、系名(Dname)、选修课程名(Cname)及成绩(Grade)的视图ST7。
CREATE VIEW ST7
AS
SELECT distinct student.Sno,Sname,Dname,Cname
from Student,SC,Course,Department
where Student.Dno=Department.Dno and Course.Cno=SC.Cno
and Student.Sno=SC.Sno;
2 删除视图
【SY7-08】删除视图ST4。
drop view ST4;
3查询视图
【SY7-09】在计算机系的学生视图ST1中找出男学生的信息。
SELECT *
FROM ST1
WHERE Ssex='男'and Dno='DX01';
【SY7-10】查询计算机系选修了1号课程的学生。
SELECT *
FROM ST3
WHERE Cno='1' and Dno='DX01';
【SY7-11】在ST6视图中查询成绩在85分以上的学生信息。
SELECT *
FROM ST6
WHERE Grade>85;
4更新视图
【SY7-12】将计算机系(DX01)学生视图ST1中学号为2012374120的学生姓名改为“Alice”。
update ST1
SET Sname='Alice'
where Sno='2012374120';
【SY7-13】向计算机系(DX01)学生视图ST1中插入一个新的学生记录,其中学号为“2012314301”,姓名为“Tom”。
insert
into ST1
values('2012314301','Tom','男 ',' ',' ',' ');
【SY7-14】删除计算机系学生视图ST1中学号为“2012314301”的记录。
delete
from ST1
WHERE Sno='2012314301';