定义:
1.视图是从若干基本表和(或)其他视图构造出来的表。
2.在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据
3.在用户使用视图时才去求相对应的数据。所以视图被称作“虚表”,,“虚拟表”.
作用:
1.可以限制对数据的访问,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。
2.可以使复杂的查询变的简单。在编写查询后,可以方便地重用它而不必知道他的基本查询细节。
3.提供了对相同数据的不同显示
视图的更新:
1.对视图进行insert update delete将会影响其基表,因为视图中不包含任何数据
2.不是所有视图都可以更新(可能引起数据紊乱或者数据无意义)
有下列内容之一,视图不能做DML操作:
①select子句中包含distinct
②select子句中包含组函数
③select语句中包含group by子句
④select语句中包含order by子句
⑤select语句中包含union 、union all等集合运算符
⑥where子句中包含相关子查询
⑦from子句中包含多个表
⑧如果视图中有计算列,则不能更新
⑨如果基表中有某个具有非空约束的列未出现在视图定义中,则不能做insert操作
3.不是迫不得已,不要对视图进行更新操作,因为效率低。视图主要用于查询
创建视图:
或者写好后面的查询SQL,使用Navicat创建
创建视图的SQL最后面加上with read only:表示只读视图,不可增删改
查询视图:select * from 视图名称;
删除视图:drop view 视图名称 删除视图不会导致数据丢失,因为视图不存数据,数据在基本表