视图
-
虚拟表,和普通表一样使用
-
MySQL 5.1 版本出现的新特性,是通过表动态生成的数据
-
只保存了 sql 逻辑,不占用物理空间
创建视图
CREATE VIEW 视图名 AS 查询语句;
使用视图
# 查询姓名中包含a字符的员工名、部门名和工种信息
CREATE VIEW myv1
AS
SELECT last_name,department_name,job_title
FROM employees e
JOIN departments d ON e.department_id = d.department_id
JOIN jobs j ON j.job_id = e.job_id;
# 使用视图
SELECT * FROM myv1 WHERE last_name LIKE '%a%';
修改视图
CREATE OR REPLACE VIEW 视图名 AS 查询语句;
删除视图
DROP VIEW 视图名,视图名,...;
查看视图
DESC 视图名;
SHOW CREATE VIEW 视图名;
同样的命令也可以查询表结构
更新视图数据
- 可以使用
CREATE OR REPLACE VIEW
- CRUD 类似表操作
注意:包含以下关键字的sql语句:分组函数、distinct、group by、having、union 或者 union all,不允许进行视图更新
#1.插入
INSERT INTO myv1 VALUES('张飞','zf@qq.com');
#2.修改
UPDATE myv1 SET last_name = '张无忌' WHERE last_name='张飞';
#3.删除
DELETE FROM myv1 WHERE last_name = '张无忌';