• MySQL视图概述


    1.介绍

    在传统关系型数据库里,视图有时也被称作虚表,是基于特定SQL结果集的虚拟数据表。在有些场合会变得很方便,例如:原有系统重构,旧的数据表A和B已经被拆分和合并到数据表C、D、F里面,为了实现平滑迁移不影响对外数据业务,可以分别创建和原有数据表A和B一致的视图G和H,再实现数据层升级,不影响现有业务。

    2.创建

    创建MySQL视图语法如下

    CREATE 
    [ALGORITHM=[UNDEFINED | MERGE | TEMPTABLE] ]
    [DEFINER=用户名]
    [SQL SECURITY [DEFINER | INVOKER] ]
    VIEW `视图名`AS 
    查询SQL
    [WITH [CASCADED | LOCAL] CHECK OPTION];

    参数说明

    ALGORITHM  视图采取何种算法,不同的算法性能可能有很大差异,UNDEFINED即由MySQL自行决定采用何种算法

    DEFINER  指定创建该视图的用户

    SQL SECURITY  关于权限的定义,可选DEFINER和INVOKER,如果设置为DEFINER则使用该视图时候,前面的DEFINER需要用户需要有相应权限,如果设置为INVOKER,则需要当前调用者有相应权限

    WITH CHECK OPTION  设置视图的数据完整性检查,如果不设置则增删改该视图的数据不作任何检查,如果设置为CASCADED则增删改数据需要满足该视图以及所有与之相关的视图(视图嵌套)定义的条件(如视图查询SQL为WHERE id > 5则不允许增删改这个条件外的数据),如果设置为LOCAL则只检查当前视图(不考虑视图嵌套),其他限制跟CASEDED一致

    3.使用

    使用方法与普通的MySQL表一致,相关特性也受对应实表的存储引擎影响。

  • 相关阅读:
    bzoj1626[Usaco2007 Dec]Building Roads 修建道路*
    bzoj1610[Usaco2008 Feb]Line连线游戏*
    bzoj1666[Usaco2006 Oct]Another Cow Number Game 奶牛的数字游戏*
    bzoj1679[Usaco2005 Jan]Moo Volume 牛的呼声*
    bzoj1606[Usaco2008 Dec]Hay For Sale 购买干草*
    bzoj1264[AHOI2006]基因匹配Match
    bzoj4518[Sdoi2016]征途
    bzoj2049[Sdoi2008]Cave 洞穴勘测
    bzoj4514[Sdoi2016]数字配对
    bzoj2429[HAOI2006]聪明的猴子
  • 原文地址:https://www.cnblogs.com/koboshi/p/4298583.html
Copyright © 2020-2023  润新知