Mysql视图相当于一个虚拟表,它只是把查询语句封装成一个表,方便后续的开发,避免书写大量冗余的代码
1.创建视图
格式
create [or replace] [algorithm = {undefined | merge | temptable}]
view view_name [(column_list)]
as select_statement
[with [cascaded | local] check option];
参数说明:
(1)algorithm:可选项,表示视图选择的算法。
(2)view_name :表示要创建的视图名称。
(3)column_list:可选项,指定视图中各个属性的名词,默认情况下与SELECT语句中的查询的属性相同。
(4)select_statement:表示一个完整的查询语句,将查询记录导入视图中。
(5)[with [cascaded | local] check option]:可选项,表示更新视图时要保证在该视图的权限范围之内。
2.查看表和视图
select full tables;
3.修改视图
专门用来修改的
alter view 视图名 as select语句;
4.更新视图
视图更新,其实也是对原表的数据进行就该,但是一般是不建议更新视图的,一般将视图作为虚拟表,用于查询就好了
更新的方法:
想原表一样,通过update,delete,insert等语句可以实现对视图数据更新,也就是更新原表中的数据,但是视图中包含了一下结构是不可以更新的:
•聚合函数(SUM(), MIN(), MAX(), COUNT()等)
•DISTINCT
•GROUP BY
•HAVING
•UNION或UNION ALL
•位于选择列表中的子查询
•JOIN
•FROM子句中的不可更新视图
•WHERE子句中的子查询,引用FROM子句中的表。
•仅引用文字值(在该情况下,没有要更新的基本表)
总的来说:不建议使用更新视图
5.重命名和删除视图
rename table 视图名 to 新视图名; --- 重命名视图
drop view 视图名1[, 视图名2,.....]; --- 删除视图