MySQL视图

原文链接:https://blog.liuzijian.com/post/e3fff40c-83f6-1619-2a08-5c2980d8650a.html

视图,即基于查询的虚拟表,始于mysql 5.1 ,通过普通表动态生成的数据,适用于复杂查询,在使用时动态生成,只保存了SQL逻辑,适用于多个地方用到同一个SQL,且SQL复杂,可以隐藏列定义,保护数据,不会暴漏原始表。

1.创建

CREATE VIEW empjobdept AS 
SELECT employees.last_name AS lastname,
employees.employee_id AS eid,
departments.department_name AS deptname,
jobs.job_title AS jobtitle
FROM employees 
LEFT JOIN departments ON departments.department_id = employees.department_id
LEFT JOIN jobs ON jobs.job_id = employees.job_id

2.使用视图

SELECT * from empjobdept

3.修改视图

存在就修改,不存在就创建

CREATE OR REPLACE VIEW AS 查询语句

ALTER VIEW 视图名 AS 查询语句

4.删除视图

DROP VIEW 视图名,视图名....

5.查看视图

DESC empjobdept;

show create view empjobdept;

6.修改数据

视图的数据支持更新修改和删除,而且会影响到原始表。

不能编辑视图的情况

1.包含分组函数, GROUP BYHAVING ,去重, 联合, 子查询等语句。
2.from不能更改的视图。
3.常量视图。
4.WHERE字句子查询引用了from字句中的表时。

7.视图和表的对比

创建语法不同,视图数据不占用物理空间,只保存逻辑。

posted @ 2024-12-24 15:14  lzj2024  阅读(3)  评论(0编辑  收藏  举报