Administrator
Published on 2021-08-20 / 172 Visits
0
0

MySQL核心之视图

视图

  • 虚拟表,和普通表一样使用

  • 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 = '张无忌';

Comment