CREATE [OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW 视图名称 [(字段列表)]
AS 查询语句
[WITH [CASCADED|LOCAL] CHECK OPTION]
CREATE VIEW 视图名称
AS 查询语句
查看数据库的表对象、视图对象
SHOW TABLES;
语法2:查看视图的结构
DESC / DESCRIBE 视图名称
查看视图信息(显示数据表的存储引擎、版本、数据行数和数据大小等)
SHOW TABLE STATUS LIKE '视图名称'\G
SHOW CREATE VIEW 视图名称;
UPDATE 。。。 SET
DELETE FROM 。。。 WHERE
出现如
下情况时,视图不支持更新操作:
1.在定义视图的时候指定了“ALGORITHM = TEMPTABLE”,视图将不支持INSERT和DELETE操作;
2.视图中不包含基表中所有被定义为非空又未指定默认值的列,视图将不支持INSERT操作;
3.在定义视图的SELECT语句中使用了 JOIN联合查询 ,视图将不支持INSERT和DELETE操作;
4.在定义视图的SELECT语句后的字段列表中使用了 数学表达式 或 子查询 ,视图将不支持INSERT,也
5.不支持UPDATE使用了数学表达式、子查询的字段值;
6.在定义视图的SELECT语句后的字段列表中使用 DISTINCT 、 聚合函数 、 GROUP BY 、 HAVING 、 UNION 等,视图将不支持INSERT、UPDATE、DELETE;
7.在定义视图的SELECT语句中包含了子查询,而子查询中引用了FROM后面的表,视图将不支持 INSERT、UPDATE、DELETE;
8.视图定义基于一个 不可更新视图 ;
9.常量视图
虽然可以更新视图数据,但总的来说,视图作为 虚拟表 ,主要用于 方便查询 ,不建议更新视图的
数据。对视图数据的更改,都是通过对实际数据表里数据的操作来完成的。
CREATE OR REPLACE VIEW empvu80 (id_number, name, sal, department_id)
ASSELECT employee_id, first_name || ' ' || last_name, salary, department_id
FROM employees WHERE department_id = 80;
ALTER VIEW 视图名称 AS查询语句
DROP VIEW IF EXISTS 视图名称;
网友评论