mysql 视图
jopen
10年前
从这个图,我们可以很容易的看出视图的优点:
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中定义的条件。