mysql中的视图

来源:互联网 发布:随机迷宫生成算法 编辑:程序博客网 时间:2024/05/21 10:31


视图是一个虚拟表,是从一个表或者多个表中导出的表。还可以从已经存在视图的基础上定义。视图一经定义就存储在数据库中,与其对应的数据并没有像表那样在数据库中再存储一份。对视图的操作与对表的操作一样,可以对其插入、删除和修改。当对通过视图看到的数据进行更改时,相应的基本表的数据也会发生变化。同时,若对基本表的数据发生变化,这种变化也会反映到视图中。

1、视图的优点

1)简单化:简化用户对数据的理解,也可以简化操作。经常使用的查询定义为视图,使得用户不必每次指定查询条件。

2)安全性:通过视图只能查询和修改所见到的数据。通过视图,可以将用户对数据库的检索限制在数据的不同子集上。

3)逻辑数据独立性:帮助用户屏蔽真实表结构变化带来的影响。

2、创建视图

语法格式如下

create [or replace] [algorithm = {undefined| merge | temptable}] view view_name[(column_list)] as select_statement [with[cascaded | local] check option]

with [cascaded|local] check option参数表示视图在更新时保证在视图的权限范围之内

algorithm的取值有3个,undefined表示自动选择算法,merge表示将使用的视图语句与视图定义合并起来,使得视图定义的某一部分取代语句对应的部分,temptable表示将视图的结果存入临时表,然后用临时表来执行语句。

cascaded为默认值,表示更新视图时要满足所有相关视图和表的条件,local表示更新视图时满足该视图本身定义的条件即可。

3、查看视图

3.1 describe查看视图基本信息

语法:describe view_name

3.2 show table status查看视图信息

语法: show table status like ‘view_name’

3.3 show create view查看视图详细信息

语法:show create view view_name

3.4information_schema的表views表中查看详细信息

Select * from information_schema.views;

4、修改视图

4.1 create or replace修改视图

语法:create [or replace] [algorithm={undefined | merge|temptable}] viewview_name[(column_list)] as select_statement [with cascaded | local] checkoption]

4.2 alter修改视图

语法:alter [algorithm = {undefined | merge | temptable}] viewview_name[(column_list)] as select_statement [with [cascaded |local] checkoption]

5、删除视图

语法:drop view [if exists] view_name[,view_name…]

0 0
原创粉丝点击