一、定义


视图是一张虚拟存在的表,是一个逻辑表,本身并不包含数据。是作为一个SELECT语句保存在字典中的。通过视图可以展现基表的部分数据,视图数据来自自定义视图的查询使用的表,数据由视图动态生成。

二、 为什么使用视图?


  1. 简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。
  2. 安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。
  3. 数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。

总结: 总而言之,使用视图的大部分情况就是为了保障数据的安全性和提高查询效率。

三、视图修改


1. 方式一

CREATE OR REPLACE VIEW 视图名
AS 
查询语句;

2. 方式二

ALTER VIEW 视图名称
AS 
查询语句;

四、删除视图


DROP VIEW 视图名1, 视图名2, ...;

五、查看视图

DESC 视图名;

SHOW CREATE VIEW 视图名;

六、视图的数据更新


1. 插入

# 和数据表的插入操作一致,例如:
INSERT INTO 视图名 VALUES(值1, 值2, ...);

2. 修改

# 和数据表的更新操作一致,例如:

UPDATE 视图名
SET 字段名=字段新值
WHERE 过滤条件;

3. 删除

# 和数据表的删除操作一致,例如:

DELETE FROM 视图名
WHERE 筛选条件;

4. 注意事项

一般简单点的视图是可以更新的,但是包含以下原则的视图是无法执行更新操作的。

  1. 包含以下关键字的sql语句:分组函数、DISTINCT、GROUP BY、HAVING、UNION ALL。
  2. 常量视图。
  3. SELECT语句中包含子查询。
  4. JOIN
  5. FROM 后面不能跟一个视图。
  6. WHERE子句的子查询引用了FORM子句的表。

七、视图和数据表的对比


类型创建语法的关键字占用空间使用
视图CREATE VIEW只保存了SQL逻辑增删改查询
数据表CREATE TABLE保存了数据增删改查
最后修改:2021 年 02 月 01 日 11 : 00 PM
如果觉得我的文章对你有用,请随意赞赏