数据库视图详解

视图

视图是基于 SQL 语句的结果集的可视化的表。视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。只保存SQL逻辑,不保存查询结果 。一般用于会在多个地方用到同样的查询结果,或者该查询结果使用的SQL语句较复杂。

创建视图

#方式一:
CREATE VIEW 视图名 AS 查询语句;

#方式二:这个视图没有就创建,有就修改
CREATE OR REPLACE VIEW 视图名
AS
查询语句;

示例一:

-- 创建视图实例1:将学⽣表中性别为男的学⽣⽣成⼀个视图
create view view_test1
AS
select * from students where stu_gender='男';
-- 查询视图
select * from view_test1;

示例二:

-- 创建视图实例1:将学⽣表中性别为男的学⽣⽣成⼀个视图
create view view_test1
AS
select * from students where stu_gender='男';
-- 查询视图
select * from view_test1;

修改视图

#方式一:这个视图没有就创建,有就修改
CREATE OR REPLACE VIEW 视图名
AS
查询语句;

#方式二:
ALTER VIEW 视图名
查询语句; 

删除视图

#可以连续删除多个视图
DROP VIEW 视图名1,视图名...;

查看视图

#查看视图的结构
DESC 视图名;
#查看创建视图的逻辑
SHOW CREATE VIEW 视图名;

视图更新

视图的增删改与表的语法一致;
具有一下任一特点的视图不允许更新:

  1. 创建视图的SQL语句中包含一下关键字:分组函数,DISTINEC,GROUP BY,HAVING,UNION ,UNION ALL;
  2. 创建视图的查询结果是连接查询的结果;
  3. FROM后是一个不可更新的视图;
  4. 常量视图;
  5. SELETE语句中包含子查询;
  6. WHERE 子句中的子查询引用了FROM后的表;

视图特性:

查询操作:如果在数据表中添加了新的数据,⽽且这个数据满⾜创建视图时查询语句的条
件,通过查询视图也可以查询出新增的数据;当删除原表中满⾜查询条件的数据时,也会从视图中删除。
新增数据:如果在视图中添加数据,数据会被添加到原数据表。
删除数据:如果从视图删除数据,数据也将从原表中删除。
修改操作:如果修改视图数据,也会修改原数据表中的数据。

视图的使⽤建议 : 对复杂查询简化操作,并且不会对数据进⾏修改的情况下可以使⽤视图。


版权声明:本文为weixin_53285159原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。