• ⑩④【MySQL】什么是视图?怎么用?视图的检查选项? 视图的作用?[VIEW]


    在这里插入图片描述

    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
    个人主页:.29.的博客
    学习社区:进去逛一逛~

    在这里插入图片描述


    ⑩④详解MySQL视图


    1. 视图的基本使用

    视图

    • 什么是视图?

      • 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
    • 如何使用视图?

    • 🚀创建视图:

      • CREATE [OR REPLACE] VIEW 视图名称[(字段列表)] AS SELECT语句 [WITH [CASCADE | LOCAL] CHECK OPTION];
        
        • 1
        • -- 演示
          
          -- CREATE OR REPLACE 表示要创建或替换一个视图
          -- 根据查询结果创建一个视图
          CREATE OR REPLACE VIEW emp_v_1 
          AS SELECT id,name,age 
          from emp where id < 10;
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
    • 🚀查询视图:

      • -- 查看创建视图的语句
        SHOW CREATE VIEW 视图名称;
        
        -- 查看视图所有数据(与查询表数据一致)
        SELECT * FROM 视图名称; 
        
        • 1
        • 2
        • 3
        • 4
        • 5
    • 🚀修改视图:

      • -- 方式一:
        CREATE OR REPLACE VIEW 视图名称[(字段列表)] AS SELECT语句 [WITH [CASCADE | LOCAL] CHECK OPTION];
        
        -- 方式二:
        ALTER VIEW 视图名称[(字段列表)] AS SELECT语句 [WITH [CASCADE | LOCAL] CHECK OPTION];
        
        • 1
        • 2
        • 3
        • 4
        • 5
        • -- 演示
          -- 存在视图emp_v_1,包含字段id,name,age ,根据喜好更新
          
          -- 方式一:
          CREATE OR REPLACE VIEW emp_v_1 
          AS SELECT id,name,job
          from emp where id > 5;
          
          -- 方式二:
          ALTER VIEW emp_v_1 
          AS SELECT id,name,job
          from emp where id < 8;
          
          
          
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
    • 🚀删除视图:

      • -- IF EXISTS关键字,表示只有视图存在时才删除,视图不存在则不执行删除。
        DROP VIEW [IF EXISTS] 视图1 [,视图2,视图3...];
        
        • 1
        • 2
        • -- 演示
          
          -- 删除视图emp_v_1 
          DROP VIEW IF EXISTS emp_v_1;
          
          • 1
          • 2
          • 3
          • 4



    2. 视图的检查选项

    视图检查选项 - WITH [CASCADE | LOCAL] CHECK OPTION

    • 视图检查选项:

      • 当使用WITH CHECK OPTION子句创建视图时,MySQL会通过视图检查正在更改的每个行,例如插入,更新,删除,以使其符合视图的定义。MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围,MySQL提供了两个选项:CASCADEDLOCAL,默认值为CASCADED
    • 🚀CASCADED

      • -- 创建或修改视图,设置检查选项,范围:CASCADE
        CREATE OR REPLACE VIEW 视图名称[(字段列表)] AS SELECT语句 WITH CASCADE CHECK OPTION;
        
        -- 修改视图,设置检查选项,范围:CASCADE
        ALTER VIEW 视图名称[(字段列表)] AS SELECT语句 WITH CASCADE CHECK OPTION;
        
        • 1
        • 2
        • 3
        • 4
        • 5
      • image-20231114195452384

    • 🚀LOCAL

      • -- 创建或修改视图,设置检查选项,范围:LOCAL
        CREATE OR REPLACE VIEW 视图名称[(字段列表)] AS SELECT语句 WITH LOCAL CHECK OPTION;
        
        -- 修改视图,设置检查选项,范围:LOCAL
        ALTER VIEW 视图名称[(字段列表)] AS SELECT语句 WITH LOCAL CHECK OPTION;
        
        • 1
        • 2
        • 3
        • 4
        • 5
      • LOCAL检查选项会递归检查当前视图依赖的视图的规则,若依赖的视图也设置了检查选项,保持规则一致性,若依赖的视图并未设置依赖选项,不检查其规则,无需保持规则一致性。




    3. 视图的更新

    视图的更新规则

    • 要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。如果视图包含以下任何一项,则该视图不可更新

      • 聚合函数窗口函数(SUM()、MIN()、MAX()、COUNT()等)

      • DISTINCT

      • GROUP BY

      • HAVING

        UNION 或者 UNION ALL




    4. 视图的作用

    • 视图的所用?
    • 简单:视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定全部的条件。
    • 安全:数据库可以授权,但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们所能见到的数据。
    • 数据独立:视图可帮助用户屏蔽真实表结构变化带来的影响。




    在这里插入图片描述

  • 相关阅读:
    Linux中关于glibc包导致的服务器死机或者linux命令无法使用的情况
    【详解】Java中的queue和deque、ArrayDeque
    极智开发 | 带你实践 MQTT 协议
    人工智能轨道交通行业周刊-第9期(2022.8.8-8.14)
    C语言编写图形化界面-创建按钮-为其指定样式
    Navicat 下载
    基于训练和推理场景下的MindStudio高精度对比
    MongoDB
    Webmin--一个用于Linux基于Web的系统管理工具
    二寸证件照尺寸怎么调?这两个方法让你在家也能制作证件照
  • 原文地址:https://blog.csdn.net/ebb29bbe/article/details/134474947