美文网首页mysql
(008)mysql中的视图

(008)mysql中的视图

作者: 林湾村龙猫 | 来源:发表于2016-01-21 00:34 被阅读102次

    概念

    视图是一种虚拟存在的表,对于使用视图的用户来说,基本上跟使用正常的表一样。视图在数据库中是不存在的,视图中的数据是动态生成的。
      视图相对于普通表的优势:

    • 简单:使用视图不需要关心后面的表的对应结构条件,对于使用者来说,视图是过滤好的结果集。
    • 安全:使用者只能访问他们被允许查询的结果集。
    • 数据独立:一旦视图结构确定,对实际表的改变对视图使用者是没有影响的。

    视图操作

    视图操作分为创建视图修改视图删除视图查看视图定义

    创建视图,修改视图

    #创建视图
    create [or replace] [algorithm={undefined|merge|temptable}]
    view view_name[(column_list)]
    as select_statement
    [with[cascaded|local] check option]
    
    # 修改视图
    alter [algorithm={undefined|merge|temptable}]
    view view_name[(column_list)]
    as select_statement
    [with[cascaded|local] check option]
    

    举例:

    create view view_test as
    select t1.sid,t1.username,t2.department
    from test1 t1 left join test2 t2 on t1.sid=t2.sid;
    
    创建视图

    说明:

    • from关键字后面不能包含子查询;
    • 不能更新的视图:包含聚合函数/group/distinct/having/union,常量视图,select中包含子查询,jion,from一个不能更新的视图,where中子查询引用from子句中的表。
    • with[cascaded|local] check option 绝对是否允许更新数据使记录不再满足视图条件。其中local-只需满足本视图条件就可以更新cascaded-必须满足所有针对该视图的所有视图的条件才可以更新。默认为cascaded。

    查看视图数据

    同普通表

    select * from view_test;
    
    查看视图数据

    删除视图

    #删除视图
    drop view [if exists] view_name [,view_name2]...[restrict|cascade]
    
    #举例
    drop view view_test;
    

    查看视图状态

    从MySQL5.1开始,使用show tables命令的时候不仅显示表名还显示视图名称。

    相关文章

      网友评论

        本文标题:(008)mysql中的视图

        本文链接:https://www.haomeiwen.com/subject/kbylkttx.html