视图
视图是基于 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 视图名;
视图更新
视图的增删改与表的语法一致;
具有一下任一特点的视图不允许更新:
- 创建视图的SQL语句中包含一下关键字:分组函数,DISTINEC,GROUP BY,HAVING,UNION ,UNION ALL;
- 创建视图的查询结果是连接查询的结果;
- FROM后是一个不可更新的视图;
- 常量视图;
- SELETE语句中包含子查询;
- WHERE 子句中的子查询引用了FROM后的表;
视图特性:
查询操作:如果在数据表中添加了新的数据,⽽且这个数据满⾜创建视图时查询语句的条
件,通过查询视图也可以查询出新增的数据;当删除原表中满⾜查询条件的数据时,也会从视图中删除。
新增数据:如果在视图中添加数据,数据会被添加到原数据表。
删除数据:如果从视图删除数据,数据也将从原表中删除。
修改操作:如果修改视图数据,也会修改原数据表中的数据。
视图的使⽤建议 : 对复杂查询简化操作,并且不会对数据进⾏修改的情况下可以使⽤视图。