View

视图的概念

  • 视图是由数据库中的一个表或多个表导出的虚拟表,其内容由查询定义,作用是方便用户对数据的操作。数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
  • 视图依赖的数据发生改变时,视图也跟着改变。视图本身发生改变也会影响到原数据。
  • MySQL中视图的本质其实一组DQL语句,即数据库中只存放视图的定义,而不会单独为视图开辟额外的空间存放数据的拷贝。

视图的作用

  • 简化操作
    视图需要达到的目的就是所见即所需。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
  • 增加数据安全性
    通过视图,用户只能查询和修改指定的数据。指定数据之外的信息,用户根本接触不到。这样可以防止敏感信息被未授权的用户查看,增强机密信息的安全性。
  • 提高表的逻辑独立性
    视图可以屏蔽原有表结构变化带来的影响。例如原有表增加列和删除未被引用的列,对视图不会造成影响。同样,如果修改表中的某些列,可以使用修改视图来解决这些列带来的影响。

视图的操作

  • 创建/修改视图

    1
    2
    3
    4
    5
    -- 加上OR REPLACE时,如果视图已经存在,则直接修改视图
    CREATE [OR REPLACE] [ALGORITHM=算法名]
    VIEW 视图名[(字段1,字段2,...)]
    AS SELECT语句

  • 删除视图

    1
    DROP VIEW IF EXISTS 视图名
  • 查看视图

    1
    DESCRIBE 视图名
  • 查询视图
    和查询表的语句完全一样