视图是一个数据表或者多个数据表导图来的表,只是一张虚拟的表
视图的作用
提高数据访问的安全性
在实际应用中,如果不希望开发人员对表中所有的记录都可以查询的到,这个时候可以创建个视图,把重要的信息隐藏起来,让开发人员查询数据时查询不到。
方便查询操作
数据表中的数据经常会用到,为例避免SELECT语句的重复查询这些信息,这些时候可以创建视图,把经常用到的数据放到这个视图中,这样在使用和查询这些数据时,就可以通过视图直接查询,而不必再写复杂的select语句了。
基于单表创建视图
这个视图只是将一个数据表中经常用到的数据提取出来。
语法格式:
CREATE VIEWview_name(column_name1…)
As subquery
如为学生信息表创建视图
基于多表连接创建视图
是指将多个数据表中经常用到的数据列使用where子句连接起来组成的视图。
create view v_student as select stuname,sex,age from T_student
(这是基于学生信息表和系别表进行的连接后创建的视图)
基于函数、分组数据创建视图
是指在子查询语句中包含有函数。表达式等,主要是为了简化查询语句,提高查询效率
create view v_teacher_salary select dept,profession,max(salary) as maxsalary from t_teacher group by dept,profession having max(salary)>3000
(为教师信息表创建视图,要求对院校和教师职称进行分组并且所有教师的工资要大于3000)
CHECK约束
与查询语句类似,当为视图添加约束(WITH CHECK OPTION),当再次执行插入、删除和修改等更新语句时,要符合查询的条件。
create view v_student as select r.stuname,r.sex,c.deptname from T_student r ,t_dept c where deptid='1109024102' with check option
(因为在视图中已经定义了CHECK约束条件,所以如果要对视图进行其他操作的时候,其depid必须指定为11090241032)
只读视图
与上面类似,如果创建只读视图的话,只需要在结尾加上关键字WITH READ ONLY
原文:http://blog.csdn.net/luckyzhoustar/article/details/26055789