mysql 视图

jopen 10年前

mysql 视图

 

从这个图,我们可以很容易的看出视图的优点:

1.  为用户集中数据,简化用户的查询和处理;有时用户需要的数据分散在多个表中,定义视图可以将它们集中在一起,方便用户查询。

 2.屏蔽数据库的复杂性。用户不需要了解数据库的表结构,并且数据库表的变更也不影响用户对数据库的使用。

3.简化用户权限管理。

4.便于数据共享。

 

 

 

创建视图:

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

OR REPLACE:允许替换已有同名的视图。

ALGORITHM:mysql处理视图的方式,默认是UNDEFINED ,未定义。

 

                           MERGE 会将引用视图的语句和视图定义的语句合并起来,在执行整句话。比如:

                           定义视图语句:create  view  testView   as   student;

                           查询视图语句:select  *   from   testView;

                           此时数据库会这样:select  *   from (create  view  testView   as   student);合并两句话后,再执行这句话。

 

                          TEMPTABLE:先从基本表中拿到视图的结果并存于临时表中,再执行语句。

WITH CHECK OPTION:在可更新的视图上检查这些修改是否符合在select_statement中定义的条件