MySQL-视图View

定义:

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 视图名称        删除视图不会导致数据丢失,因为视图不存数据,数据在基本表

更多视图详情点击

原文地址:https://www.cnblogs.com/elian91/p/15338393.html