视图(虚拟表)
含义:虚拟表,和普通表一样使用
mysql5.1版本后新特性,通过表动态生成的数据
好处:
重用sql语句
简化复杂的sql操作,提高重用性
保护数据,提高安全性
一、创建视图
语法:
create view 视图名 as 查询语句;
例:
CREATE VIEW v1 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 e.job_id
= j.job_id
使用:
SELECT * FROM v1 WHERE last_name LIKE ‘%a%’
二、视图的修改
方式一:
语法:
create orreplace view 视图名 as 查询语句;
方式二:
语法:
alter view 视图名 as 查询语句;
三、删除视图
语法:
drop view 视图名 , 视图名;
四、查看视图
desc 视图名;
show create view 视图名;
五、视图的更新
语法:
1.插入
insert into 视图名 values(值)
2.修改
update 视图名 set 列=值,列=值 where 筛选条件;
3.删除
delete from 视图名 where 筛选条件
具备以下特点的视图不允许更新:
包含以下关键字的sql语句:分组函数、distinct、group by、having、union、union all
常量视图
select中包含子查询
join
from一个不能更新的视图
where子句的子查询引用了from子句中的表