1.视图的概念:视图是一种命名的导出表,是一个或几个基本表(或视图)导出的表,但与基本表不同,视图的数据并不物理地存储在数据库中。
2.定义视图和删除视图
(1)定义视图 语句格式为:CREATE VIEW <视图名>[(<列名>,...,<列名>)]
AS <查询表达式>
[WITH CHECK OPTION]其中,查询表达式通常是一个SELECT查询,其中不包含DISTINCT短语和ORDER BY子句。当SELECT子句中的结果咧都是属性名时,列名可以省略,并用SELECT子句的结果咧作为视图表的属性。当视图定义中包含WITH CHECK OPTION时,该视图是可更新的,并且咋跟心事考虑查询表达式的查询条件。
如:建立学生成绩视图,它包含学号,姓名,课程名和成绩
CREATE VIEW Student_Grades(Sno,Sname,Cname,Grade)
AS SELECT S.Sno,Sname,Cname,Grade
FROM Students S,SC,Courses C
WHERE S.Sno =SC.Sno AND SC.Cno = C.Cno;
在定义视图的查询中使用聚集函数:定义学生平均成绩的视图
CREATE VIEW Stu_Avg_Grade(Sno,Sname,Avg_Grade)
AS SELECT S.Sno,Sname,AVG(Grade)
FROM Students S,SC
WHERE S.Sno = SC.Sno
GROUP BY S.Sno,Sname;
(2)删除视图语句格式为:DROP VIEW<视图名>[CASCADE|RESTRICT]缺省时是RESTRICT;如 DROP VIEW Student_Grades;
3.基于视图的更新
若系统允许更新则更新视图与表的方法类似如:INSERT INTO Student_Grade(Sno,Sname,Cname,Grade) VALUES('1','FA','FAF','90');
4.视图的作用
(1)使用视图可以使一些查询表达更加简洁
(2)视图提供了一定程度的逻辑独立性
(3)视图与授权配合使用,可以再某种程度上对数据库起到保护作用
(4)视图使得用户能够以不同角度看待相同的数据。