mysql视图

来源:互联网 发布:阿卡波糖 减肥 知乎 编辑:程序博客网 时间:2024/06/08 13:23

MYSQL的视图

一、使用视图的理由是什么

1、安全性:创建一个视图,定义好该视图所操作的数据。之后将用户权限与视图绑定,这样的方式是使用到了一个特性:grant语句可以针对视图进行授予权限。
2、查询性能提高。
3、有灵活性的功能需求后,需要改动表的结构而导致工作量比较大,那么可以使用虚拟表的形式达到少修改的效果,这是在实际开发中比较有用的。
4、复杂的查询需求,可以进行问题分解,然后将创建多个视图获取数据。将视图联合起来就能得到需要的结果了。


二、创建视图的语法

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
 [WITH [CASCADED | LOCAL] CHECK OPTION]

解释:
1.CREATE:表示新建视图。
2.REPLACE:表示替换已有视图。
3.ALGORITHM :表示视图选择算法。
4.view_name :视图名。
5.column_list:视图的字段。
6.select_statement:表示select语句(查询出的列必须和是视图的字段列一一对应)。
7.[WITH [CASCADED | LOCAL] CHECK OPTION] 参数表示视图在更新时保证在视图的权限范围之内。

创建视图实例
CREATE ALGORITHM=UNDEFINED VIEW stu_class (id,NAME,glass) AS SELECT student.`stuno`,student.`stuname`,stuinfo.`class` FROM student ,stuinfo WHERE student.`stuno`=stuinfo.`stuno`;

三、修改视图语法

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

解释: 同上

修改视图实例
ALTER VIEW  stu_class(v_id,v_name,v_glass) AS SELECT student.`stuno`,student.`stuname`,stuinfo.`class` FROM student ,stuinfo WHERE student.`stuno`=stuinfo.`stuno`;


四、删除视图语法

删除视图使用DROP VIEW语法

DROP VIEW [IF EXISTS]
view_name [, view_name] 
[RESTRICT | CASCADE]

删除视图实例

DROP VIEW IF EXISTS stu_class



原创粉丝点击