视图:是从一个或几个基本表(视图)导出的表。他与基本表不同,是一个虚表。对应视图数据的更改实际是对表的更改。
- 视图的作用
- 简化用户的操作
- 是用户能以多种角度看待统一数据
- 对数据库提供一定程度的逻辑独立性
- 对机密数据提供安全保护
- 适当的利用视图可以更清晰的表达查询
- 定义视图
- 建立视图
- CREATE VIEW <视图名> [(<列名>[, <列名>…)]
- AS <子查询>
- [WITH CHECK OPTION];
- 如果列名省略,默认为子查询中的列名
- 子查询可以是任意复杂的SELECT语句
- WITH CHECK OPTION表示是对视图进行插入,删除,修改时候满足谓词条件
- 例如:
- CREATE VIEW CS_Student AS #等价于CS_Student(Sno, Sname, Sage)
- SELECT Sno, Sname, Sage FROM Student WHERE Sdept=’CS’; # 创建计算机系学生的视图
- 删除视图
- DROP VIEW <视图名> [CASCADE]
- CASCADE表示如果该视图上还导出了其它视图,就把到处的视图一起删除
- DROP VIEW <视图名> [CASCADE]
- 建立视图
- 查询视图
- 同表查询一样。
- 例如:
- 查询评价成绩在90分以上的学生学号和平均成绩
- SELECT Sno, AVG(Cgrade) FROM SC
- GROUP BY Sno HAVING AVG(Cgrade) >=90;
- 查询评价成绩在90分以上的学生学号和平均成绩
- 更新视图
- 类似于表的插入,删除和修改数据。不过不是所有视图都是可更新的,一般行列子集视图是可更新的。