首页 > 数据库 >MySQL24 - 视图

MySQL24 - 视图

时间:2023-01-09 17:23:43浏览次数:34  
标签:... name CASCADED 视图 MySQL24 LOCAL view

视图 View

使用简单、数据安全、数据独立
= 将SELECT语句封装

视图(View)是虚拟存在的表,并不在数据库中真实存在,在使用视图时动态生成

视图只保存查询的 SQL 逻辑,不保存查询的结果


创建视图

CREATE [OR REPLACE] VIEW view_name(列名列表) AS SELECT ... [WITH [CASCADED | LOCAL] CHECK OPTION];

查询视图

= 查询表,因为视图是虚拟存在的表

SHOW CREATE VIEW view_name;
SELECT * FROM view_name [WHERE ...];

修改视图

方法一:重新创建或替换

  • CREATE [OR REPLACE] VIEW view_name(列名列表) AS SELECT ... [WITH [CASCADED | LOCAL] CHECK OPTION];
    

方法二:修改视图

  • ALTER VIEW view_name[(列名列表)] AS SELECT ... [WITH [CASCADED | LOCAL] CHECK OPTION];
    

删除视图

DROP VIEW [IF EXISTS] view_name [,view_name2, ...] ...

WITH [CASCADED | LOCAL] CHECK OPTION

  • 在进行DML操作时检查数据,只有符合视图(存储SQL逻辑)的SQL语句才能插入、更新、删除数据

  • CASCADED 的视图(默认为CASCADED ),不仅检查SQL语句是否满足自身条件,而且会检查SQL语句是否满足关联\依赖的其他视图的条件,关联的其他视图就是在创建该视图时使用到的其他视图

  • LOCAL 的视图a,也会检查自身条件和依赖的其他视图b的条件,但其他视图b必须有 WITH [CASCADED | LOCAL] CHECK OPTION 才会被检查,如果视图b没有则不检查,也不再检查视图b依赖的其他视图


视图的更新

视图含有以下任意一项为不可更新情况:

  • 聚合函数或窗口函数( SUM()、MIN()、MAX()、COUNT() )
  • DISTINCT
  • GROUP BY
  • HAVING
  • UNION 或 UNION ALL

视图可以更新的必要条件:视图中的行与基础表中的行之间必须存在一对一的关系

标签:...,name,CASCADED,视图,MySQL24,LOCAL,view
From: https://www.cnblogs.com/Ashen-/p/17037645.html

相关文章

  • Away3D之视图(View3D)
    package{importflash.display.Sprite;importflash.events.Event;importaway3d.containers.View3D;importaway3d.entities.Mesh;importaway3d.materials.Co......
  • sqlserver2019创建“可查询”“可创建视图”的用户
      ————————————(个人随笔,记录使用,仅供参考)一、SqlserverSSMS创建一个只读的用户1、用拥有管理权限的用户连接数据库(sa)2、选择“安全性”=》“登录名”=......
  • Django-restframework 视图类
    HTTP请求响应drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作。所以在Django原有的django.views.View类基础上,drf封装了多个视图子类供我们使用。Django-r......
  • 设置视图基础
    ctrlaltl自排版视图的宽高match_parent:表示与上级视图一致wrap_content:表示内容自适应dp:自设置  首先确保xml中是wrap_contentTextViewt=findViewId(R.i......
  • 从零开始学习 MySQL 系列--索引、视图、导入和导出
    前言上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识。作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家......
  • Mysql 访问视图却报ERROR 1356 (HY000)错误
    目录1.适用范围2.问题概述3.问题原因3.1.通过root用户查询问题仍然存在,且所有视图问题都是相同的。3.2.root自己的创建的视图可以正常访问3.3.查看用户权限3.4.以为是权......
  • NumPy科学计算库学习_006_NumPy数组的复制和视图
    引入模块importnumpyasnp什么是浅拷贝?浅拷贝会在内存中产生不同对象,但由于拷贝的是父对象,子对象并没有拷贝,所以浅拷贝会存在共享内存的情况,实际上,NumPy的视图np_arr......
  • django的通用视图
    django.views.geneic:django.视图.通用的有时候编写视图是一种很繁重的任务,在django.views中存在的generic 刚好可以解决这个问题。减少工作量,主要的是List 1.首先......
  • vue2修改数组/对象的值后,页面视图不更新的解决方法
    1.对象刷新:通过使用vue.$set方法,实现动态添加/修改对象属性语法:vue.$set(对象名,键名,值)Vue.$set(this.postForm,'set_last_buyday','属性值')//第一种写法用vue.$sett......
  • Django视图层
    目录Django视图层一、视图层之必会三板斧二、JsonResponse对象三、request对象四、视图层之FBV与CBV五、CBV源码剖析六、虚拟环境Django视图层一、视图层之必会三板斧用......