zoukankan      html  css  js  c++  java
  • mysql 开发基础系列16 视图

    一. 什么是视图

      视图是一种虚拟存在的表,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。优势有:
        简单: 使用视图的用户完全不需要关心后面对应的表的结构,关联条件,筛选条件。
        安全:使用视图的用户只能访问他们被允许查询的结果集。
        数据独立: 源表增加列对视图没有影响,源表修改列名,则通过修改视图 对应好源表的列名来解决,不会造成对访问者的影响。

      1.1 创建视图的操作

     -- 创建视图
    CREATE  OR REPLACE VIEW view_city
      AS 
      SELECT * FROM city;
     -- 查询视图
     SELECT * FROM view_city;

      1.2 修改视图

    -- 修改视图
    ALTER VIEW view_city
     AS 
     SELECT  cityname FROM city;

      1.3 限制 

    视图一般只是用来做查询使用,如果要对视图做修改有如下限制不能更新:
    包含关键字 聚合函数(sum,min,max,count等),distinct,group by , having,union ,union all。
    常量视图。
    select 中包含子查询。
    jion。
    from 一个不能更新的视图。
    where 字句的子查询引用了from字句的表。

       LOCAL 是只要满足本视图的条件就可以更新, CASCADED 则是必须满足所有针对该视图的所有视图的条件才可以更新, 如果没有明确是LOCAL 还是CASCADED,则默认是CASCADED,由于视图基本不做修改,这里就不在演示。

     -- local与CASCADED 语法
      CREATE  OR REPLACE VIEW view_city
      AS 
      SELECT * FROM city;
      -- with(local | CASCADED)   CHECK OPTION;

      1.4  删除视图

    drop view view_city;

      1.5 查看视图

    --  查看视图的定义   
    SHOW CREATE VIEW view_city

    -- 查看视图的定义
    SELECT * FROM information_schema.views WHERE table_name = 'view_city'

  • 相关阅读:
    ural 1110,快速幂
    ural 1109,NYOJ 239,匈牙利算法邻接表
    CodeBlocks养眼的colour theme
    UVa 10047,独轮车
    UVa 10054,欧拉回路
    UVa 11624,两次BFS
    hiho一下,第115周,FF,EK,DINIC
    Poj(1220),hash
    2013 Asia Regional Changchun I 题,HDU(4821),Hash
    UVa 213,World Finals 1991,信息解码
  • 原文地址:https://www.cnblogs.com/MrHSR/p/9284756.html
Copyright © 2011-2022 走看看