视图(view)

来源:互联网 发布:淘宝账号被永久封号 编辑:程序博客网 时间:2024/05/01 17:01

1.为啥使用视图

视图是一个表或几个表的映射,是虚表其实我们也可以拿它跟同义词类比下,当然它们还有很多不同 点了.我们可以把视图当作一串串长长的查询语句的同义词来理解.视图有用处主要是

1.简化查询,我们可以基于一个复杂的查询语句来建立一个视图,这样我们以后只要直接查询视图就行

2.限制数据访问.如果只希望某些用户只能访问表中的某几列数据,则可以用这几个列形成一个视图

2.创建视图:

语法:CREATE [OR REPLACE] VIEW view_name[(alias[,alias...])]

AS querySQL     [WITH READ ONLY];

 

如果加上WITH READ ONLY表示只能对视图进行查询,不能做DML操作.

例1: CREATE VIEW v_emp  AS

SELECT ename,empno FROM emp

例2: CREATE OR REPLACE VIEW v_emp(yourName,yourNumber)  AS

SELECT ename,empno FROM emp   WITH READ ONLY;

3.视图分类

1.简单视图:创建视图时对应的SELECT语句中不包含任何函数,表达式或分组函数.即视图是表的一个子集,只是把表中的一部分或全部数据原样"搬来",不做任何改变.

2.复杂视图:对应的select语句中包含函数,表达式或分组函数.即把表中的数据"搬过来"时还做了些改变.

3.连接视图.视图是基于多个表生成的.简单视图和复杂视图只基于一个表

如果创建视图时加了WITH READ ONLY则这三类视图都只能做查询操作.如果没加的话2,3类视图默认是也只能查询.而1类视图能做INSERT ,UPDATE的操作.

当然简单视图能做DML操作不一定就代表一定能操作成功,它操作完后要看对应的数据有没有违反基表的约束条件.

 

不能对视图做ALTER操作.删除视图就是DROP VIEW view_name.

 

原创粉丝点击