mysql-视图专题 内容待续。。。。

 目录 

创建视图:

删除视图: 

修改视图: 

视图缩减业务逻辑 

视图的执行算法: 

视图的更新: 

不可更新的视图: 

关于视图的可插入性:insert

With check option的用法: 

WITH LOCAL/cascade CHECK OPTION的用法: 

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

其中,CREATE:表示新建视图; 

REPLACE:表示替换已有视图 

ALGORITHM :表示视图选择算法 

view_name :视图名 

column_list:属性列 

select_statement:表示select语句 

[WITH [CASCADED | LOCAL] CHECK OPTION]参数表示视图在更新时保证在视图的权限范围之内  

可选的ALGORITHM子句是对标准SQL的MySQL扩展。 

ALGORITHM可取三个值:MERGE、TEMPTABLE或UNDEFINED。 

如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的)。算法会影响MySQL处理视图的方式。 

对于MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。 

对于TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。 

对于UNDEFINED,MySQL自己选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE, 

这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。  

LOCAL和CASCADED为可选参数,决定了检查测试的范围,默认值为CASCADED。

  创建视图:

  视图的信息来自两个表:  

  create table student(stuno int,stuname varchar(60));
  create table stuinfo(stuno int,class varchar(60),city varchar(60));
  insert into student values(1,'wanglin'),(2,'gaoli'),(3,'zhanghai');
  insert into stuinfo values(1,'wuban','henan'),(2,'liuban','hebei'),(3,'qiban','shandong');
  alter table student add constraint primary key(stuno);
  alter table stuinfo add constraint primary key(stuno);  

  #创建视图
  create view stu_class(id,pname,class) as select student.`stuno`,student.`stuname`,stuinfo.`class` from student,stuinfo

   where student.`stuno`=stuinfo.`stuno`; #注意,select后表中字段的引用,``是键盘中Tab上方那个键的英语字符
    #查看视图  

  select * from stu_class;        #返回结果就类似表的查询结果
  show create view stu_class;      #返回创建视图的名称,创建语句信息,字符集信息
  describe stu_class;          #查看视图,返回视图的字段定义、字段的数据类型、是否为空、是否为主/外键、默认值和额外信息
  desc stu_class;            #describe的缩写,作用一样
  show table status like 'stu_class';    #COMMENT的值为VIEW说明该表为视图,其他信息为NULL说明这是一个虚表,这是基表和视图的区别
  show table status like 'student';      #返回信息不为空,说明是个基表

参考:http://www.cnblogs.com/lyhabc/p/3801527.html

    http://blog.itpub.net/28194062/viewspace-772902/

   

内容待续。。。。

 

posted @ 2015-11-13 00:19  Tab_000  阅读(84)  评论(0)    收藏  举报