当前位置: 首页 > article >正文

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

在这里插入图片描述

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

在这里插入图片描述

视图VIEW

  • ⑩④详解MySQL视图
    • 1. 视图的基本使用
    • 2. 视图的检查选项
    • 3. 视图的更新
    • 4. 视图的作用


⑩④详解MySQL视图


1. 视图的基本使用

视图

  • 什么是视图?

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

  • 🚀创建视图:

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

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

    • -- 方式一:
      CREATE OR REPLACE VIEW 视图名称[(字段列表)] AS SELECT语句 [WITH [CASCADE | LOCAL] CHECK OPTION];
      
      -- 方式二:
      ALTER VIEW 视图名称[(字段列表)] AS SELECT语句 [WITH [CASCADE | LOCAL] CHECK OPTION];
      
      • -- 演示
        -- 存在视图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;
        
        
        
  • 🚀删除视图:

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



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;
      
    • image-20231114195452384

  • 🚀LOCAL

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




3. 视图的更新

视图的更新规则

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

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

    • DISTINCT

    • GROUP BY

    • HAVING

      UNION 或者 UNION ALL




4. 视图的作用

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




在这里插入图片描述


http://www.kler.cn/a/133833.html

相关文章:

  • Could not initialize class sun.awt.X11FontManager
  • 搭建深度学习开发环境
  • ABC334
  • SOLIDWORKS代理商鑫辰信息科技
  • vxe-table 3.10+ 进阶高级用法(一),根据业务需求自定义实现筛选功能
  • 蓝牙BLE开发——iOS 每次写入数据超过200字节报错?
  • 【Redis】RedisTemplate最全的常用方法
  • VB.net webbrowser 自定义下载接口实现
  • 【数据结构】图的存储结构及实现(邻接表和十字链表)
  • 适用于 Windows 的 10 个最佳视频转换器:快速转换高清视频
  • C++ 字符串的 拼接,插入,查找与截取。
  • 消息消费过程
  • CnosDB有主复制演进历程
  • main.js 中的 render函数
  • 几种典型的深度学习算法:(CNN、RNN、GANS、RL)
  • S32K324 UDS Bootloader开发-下位机篇-Bootload软件(2)
  • Redis:新的3种数据类型Bitmaps、HyperLoglog、Geographic
  • SELinux零知识学习十七、SELinux策略语言之类型强制(2)
  • 日志维护库:loguru
  • 图论| 827. 最大人工岛 127. 单词接龙
  • 运行ps显示msvcp140.dll丢失怎么恢复?msvcp140.dll快速解决的4个不同方法
  • react antd下拉选择框选项内容换行
  • js:react使用zustand实现状态管理
  • Shaderlab的组成部分SubShader
  • 分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测
  • C#中.NET 6.0 控制台应用通过EF访问新建数据库