视图是一张虚拟表,其内容由查询定义,同真实的表同样,视图包含一系列带有名称的列和行数据。可是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,而且在引用视图时动态生成。(视图不是真实存在磁盘上的)sql
1、视图与表的区别数据库
一、表须要占用磁盘空间,视图不须要
二、视图不能添加索引(因此查询速度略微慢点)
三、使用视图能够简化,复杂查询
四、视图的使用利于提升安全性
好比:不一样用户查看不一样视图安全
建立,修改,删除视图的基本操做spa
2、建立视图blog
语法结构:索引
CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW 视图名ci AS开发 SELECT查询 (须要查询的结果) table [WITH READ ONLY CONSTRAINT] (设置是否能够对视图进行增删改查)class
|
语法解析:
1. OR REPLACE:若是视图已经存在,则替换旧视图。
2. FORCE:即便基表不存在,也能够建立该视图,可是该视图不能正常使用,当基表建立成功后,视图才能正常使用。
3. NOFORCE:若是基表不存在,没法建立视图,该项是默认选项。
4. WITH READ ONLY:默承认以经过视图对基表执行增删改操做,可是有不少在基表上的限制(好比:基表中某列不能为空,可是该列没有出如今视图中,则不能经过视图执行insert操做),WITH READ ONLY说明视图是只读视图,不能经过该视图进行增删改操做。现实开发中,基本上不经过视图对表中的数据进行增删改操做。
3、删除视图
一、drop view 视图名
4、案例分析
一、查询视图数据和查询基表的数据的sql同样