介绍
视图是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图是动态形成的。
通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。
语法
创建视图
CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [WITH[CASCADED|LOCAL] CHECK OPTION]
示例:
在
student
表上创建视图stu_view
,查询math
、chinese
字段并定义一个math+chinese
成绩之和字段,值为两者之和;
sql
CREATE VIEW stu_view AS
SELECT
math,
chinese,
(math + chinese) AS 'math+chinese'
FROM
student;
在
student
表和stu_info
表上,创建stu_classes
视图,查询出stu_id
、姓名和班级,查询条件为两表中的stu_id
字段相同。
sql
CREATE VIEW stu_classes AS
SELECT
s.stu_id,
s.name AS name,
i.classes
FROM
student s
JOIN
stu_info i ON s.stu_id = i.stu_id;
查询视图
语法:
查看创建视图语句:SHOW CREATE VIEW 视图名称;
查看视图数据:SELECT * FROM 视图名称;
修改视图
语法:
CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 [WITH[CASCADED|LOCAL] CHECK OPTION];
ALTER VIEW 视图名称[(列中列表)] AS SELECT语句 [WITH[CASCADED | LOCAL] CHECK OPTION];
删除视图
语法:
DROP VIEW[IF EXISTS] 视图名称 [视图名称]...;