1. 什么是视图
一张虚拟的表,从一个或多个表中查询出的数据集
2.视图的作用
一)简化SQL语句
二)安全,权限控制管理【对真实表关闭权限,但开放视图的权限】
三)在不影响真实表的情况下,满足更多灵活的需求
3.视图语法
一)创建
CREATE
[OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
注意:
ALGORITHM表示视图选择的算法(可选参数)
UNDEFINED:MySQL将自动选择所要使用的算法
MERGE:将视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分
TEMPTABLE:将视图的结果存入临时表,然后使用临时表执行语句
属性清单表示视图中的列名,默认与SELECT查询结果中的列名相同(可选参数)
WITH CHECK OPTION表示更新视图时要保证在该试图的权限范围之内(可选参数)
CASCADED:更新视图时要满足所有相关视图和表的条件
LOCAL:更新视图时,要满足该视图本身定义的条件即可
tips:创建试图时最好加上WITH CASCADED CHECK OPTION参数,这种方式比较严格,可以保证数据的安全性
二)修改
one:
CREATE OR REPLACE
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
two:ALTER
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = { user | CURRENT_USER }]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
三)删除
DROP VIEW view_name
4.视图小结
参考链接:http://dev.mysql.com/doc/refman/5.7/en/create-view
http://www.cnblogs.com/wangtao_20/archive/2011/02/24/1964276.html
http://www.cnblogs.com/zzwlovegfj/archive/2012/06/23/2559596.html
http://www.jb51.net/article/36363.htm
1940

被折叠的 条评论
为什么被折叠?



