什么是视图?
视图是一个虚拟表,是表中的数据经过某种筛选后的显示方式,由一个预定义的查询 SELECT 语句组成。
视图的特点
视图中的数据并不属于视图本身,而是属于基本的表。对视图可以像表一样进行 INSERT、UPDATE、DELETE 操作。
视图不能被修改,表修改或者删除后应该删除视图再重建。
视图的数量没有限制,但是命名不能和视图以及表重复,具有唯一性。
视图可以被嵌套,一个视图中可以嵌套另一个视图。
视图不能索引,不能有相关联的触发器和默认值,部分数据库(如 SQL Server)限制在视图后直接使用 ORDER BY 排序。
举例:查询'心理学'考试成绩大于 80 的学生的'学号'、'姓名'、'所属院系'。
Student(学号,姓名,性别,所属院系)
Course(课号,课名,学分)
Score(学号,课号,考试成绩,平时成绩)
这需要通过联合查询来解决问题了,参数不足,只得如此,来写一条语句试试:
SELECT st.学号,st.姓名,st.所属院系 FROM student AS st,course AS co,score AS sc WHERE co.课名='心理学' AND sc.考试成绩>80 AND st.学号=sc.学号 AND co.课号=sc.课号
这条语句看起来很长,有一点点复杂,如果每次都要先写这条语句查询后再对查询的结果操作,就会显得复杂,创建一个视图就能解决这个问题了。
创建视图:
CREATE VIEW vw1 AS SELECT st.学号,st.姓名,st.所属院系 FROM student AS st,course AS co,score AS sc WHERE co.课名='心理学' AND sc.考试成绩>80 AND st.学号=sc.学号 AND co.课号=sc.课号
这样就可以直接查看视图,查看数据了。
视图的功能
- 简化用户操作
- 能以不同的角度观察同一个数据库
- 对重构数据库提供了逻辑独立性:利用视图将需要的数据合并或者筛选,但是不影响原表的数据和结构
- 对机密数据提供安全保护:可以建立不同的视图对不同用户,以达到安全的目的
视图的增删改查
关于视图的具体增删改查操作,建议参考官方文档或权威教程获取最新标准。

