1. 创建视图
CREATE [ OR REPLACE ] ALGORITHM = UNDEFINED/MERGE/TMEPTABLE
VIEW VIEW_NAME
AS SELECT_statement
WITH CASCADED/LOCAL CHECK OPTION
● OR REPLACE 如果给定了此字句,表示该语句能够替换已有视图。
● ALGORITHM 可选,表示视图选择的算法
UNDEFINED 表示MySQL将自动选择所要使用的算法。 默认为这个
MERGE 表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。
TMEPTABLE 表示将视图的结果存入临时表,然后使用临时表执行语句。
● view_name 表示要创建的视图名称。
● column_list 可选,表示属性清单,指定了视图中各个属性的名
● AS 表示指定视图要执行的操作
● SELECT_statement 是一个完整的查询语句,表示从某个表或视图中查出某些满足条件的记录,将这些记录导入视图中。
● WITH CHECK OPTION 可选,百世创建视图时要保证在该视图的权限范围之内
● CASCADED 可选,表示创建视图时,需要满足跟该视图有关的所有相关视图和表的条件,该参数为默认值
● LOCAL 可选,表示创建视图时,只要满足该视图本身定义的条件即可
○ 在单表上创建视图
创建一张视图,包含学生的 数学 语文 数学+语文
○ 在多表上创建视图
2. 查看视图
○ DESCRIBE / DESC 视图名 -- 查看视图结构
○ SHOW TABLE STATUS LIKE ' 视图名 ' -- 查看视图信息
○ SHOW CREATE VIEW 视图名 -- 查看创建视图的语句
3.修改视图
○ CREATE OR REPALCE VIEW 视图名
初始结构:
更新过结构
○ ALTER [ ALGORITHM = UNDEFINED / MEGRE / TEMPTABLE ]
VIEW view_name [ column_list ]
AS SELECT_statement
[ WITH [ CASCADED / LOCAL ] CHECK OPTION ]
4. 更新视图 -- 对视图的操作其实就是对真实表中的操作
○ UPDATE 语句
○ INSERT 语句
○ DELETE 语句
○ 以下几种情况无法更新视图
- 视图中不包含基本表中被定义为非空的列。
- 在定义视图的SELECT语句后的字段列表中使用了数学表达式。
- 在定义视图的SELECT语句后的字段列表中使用了聚合函数。
- 在定义视图的SELECT语句中使用了 DISTINCT / UNION / TOP / GROUP BY / HAVING 字句
5. 删除视图
DROP VIEW [ IF EXISTS ] view_name... [ RESTRICT / CASCADE ]