MySQL 视图

小编:啊南 223阅读 2020.11.27

什么是视图 ( view ) ?

视图,即虚拟表,通过底层接口封装的 SQL 语句查询到的内容作为虚拟表中的数据,因此视图中的记录来自数据表,它本身不存储数据。

视图可以连接一个或多个数据表的部分字段,也可以针对不同的用户创建不同的查询视图。

如何创建视图 ?

把经常查询的结果集放到虚拟表中,提升使用效率

CREATE VIEW 视图名 AS
SELECT 字段1,字段2 FROM 表 where 条件;

#当视图创建之后,它就相当于一个虚拟表,可以直接使用:
SELECT * FROM 视图名;
嵌套视图
创建好一张视图之后,还可以在它的基础上继续创建视图
修改视图
#在创建视图时加上 or replace ,即视图存在则替换,否则创建
CREATE  or replace  VIEW 视图名 AS
SELECT 字段1,字段2 FROM 表 where 条件;
删除视图
DROP VIEW 视图名;
用视图对数据格式化
#经常需要输出某个格式的内容
CREATE VIEW 视图名 AS 
SELECT CONCAT(字段1, '(' , 字段2, ')') AS 别名
FROM 表1 JOIN 表2 on 条件;

#查询视图
SELECT * FROM 视图名;

#结果:字段1(字段2)
视图的优点

安全性:虚拟表是基于底层数据表的,我们在使用视图时,一般不会轻易通过视图对底层数据进行修改

简单清晰:视图是对 SQL 查询的封装,它可以将原本复杂的 SQL 查询简化,这样就好比我们在进行模块化编程一样,不仅结构清晰,还提升了代码的复用率。

视图和临时表的区别?

在实际工作中,我们可能会见到各种临时数据。比如说网页中存储用户登录信息的cookie等, 这里就需要用到临时表了,临时表是真实存在的数据表,不过它不用于长期存放数据,只为当前连接存在,关闭连接后,临时表就会自动释放。

另外,我们也需要了解到视图是虚拟表,本身不存储数据,如果想要通过视图对底层数据表的数据进行修改也会受到很多限制,通常我们是把视图用于查询。

关联标签: