文章目录

  • 视图
    • 1)创建视图
    • 2)删除视图
    • 3)对视图进行查询操作
    • 4)更新视图
      • a. 插入数据
      • b. 删除数据
      • c. 更新数据
      • a. 插入数据
      • b. 删除数据
      • c. 更新数据

视图

1)创建视图

关系数据库管理系统执行CREATE VIEW语句的结果只是把视图的定义存入数据字典,并不执行其中的SELECT语句。只是在对视图查询时,才按视图的定义从基本表中将数据查出。

create view 视图名 (列名1, 列名2, ...) AS 子查询 with check option

WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。

with check option默认是cascade,即级联检查,等价于with cascaded check option

在更新数据时会保证数据符合视图的条件。如视图是根据专业是IS创建的,插入一个非IS专业的学生是不符合条件的,拒绝插入数据

有条件检查会检查条件是否满足。满足才插入数据。

没有条件检查时,都会插入数据(向视图数据来源),但是视图中只会显示符合视图条件的数据

组成视图的属性列名或者全部省略或者全部指定,没有第三种选择。如果省略了视图的各个属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。但在下列三种情况下必须明确指定组成视图的所有列名:

  • 某个目标列不是单纯的属性名,而是聚集函数或列表达式
  • 多表连接时选出了几个同名列作为视图的字段
  • 需要在视图中为某个列启用新的更合适的名字

创建的视图作为数据表被显示

2)删除视图

drop view 视图名 [cascade]

视图删除后视图的定义将从数据字典中删除。如果该视图上还导出了其他视图,则使用CASCADE级联删除语句把该视图和由它导出的所有视图一起删除。基本表删除后,由该基本表导出的所有视图均无法使用了,但是视图的定义没有从字典中清除。删除这些视图定义需要显式地使用DROP VIEW语句。

3)对视图进行查询操作

对视图的查询完全可以当初对数据表的查询。因为视图是一个虚拟表。

4)更新视图

更新视图是指通过视图来插入(NSERT)、删除(DELETE)和修改(UPDATE)数据。由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新。像查询视图那样,对视图的更新操作也是通过视图消解,转换为对基本表的更新操作。

为防止用户通过视图对数据进行增加、删除、修改时,有意无意地对不属于视图范围内的基本表数据进行操作,可在定义视图时加上WITH CHECK OPTION子句。这样在视图上增、删、改数据时,关系数据库管理系统会检查视图定义中的条件,若不满足条件则拒绝执行该操作。

a. 插入数据

建表时添加了with check option, 会进行条件检查。表要求adept = ‘is’,插入的数据中adept = null,不符合视图规则,条件检查失败,拒绝插入数据。

b. 删除数据

视图数据来源相应数据也被删除

c. 更新数据

在原表中的数据也发生了更改

询视图那样,对视图的更新操作也是通过视图消解,转换为对基本表的更新操作。

为防止用户通过视图对数据进行增加、删除、修改时,有意无意地对不属于视图范围内的基本表数据进行操作,可在定义视图时加上WITH CHECK OPTION子句。这样在视图上增、删、改数据时,关系数据库管理系统会检查视图定义中的条件,若不满足条件则拒绝执行该操作。

a. 插入数据

建表时添加了with check option, 会进行条件检查。表要求adept = ‘is’,插入的数据中adept = null,不符合视图规则,条件检查失败,拒绝插入数据。

b. 删除数据

视图数据来源相应数据也被删除

c. 更新数据

在原表中的数据也发生了更改

Mysql中视图操作相关推荐

  1. MySQL中DELETE操作磁盘空间不会减少的原因

    MySQL中delete操作 在InnoDB中,delete操作并不会真的删除数据,mysql实际上只是给要删除的数据打了标记,标记为删除.磁盘所占空间不会变小,即表空间并没有真正被释放. 这样设计的 ...

  2. MySQL中视图与表的区别

    1.MySQL中视图和表的区别以及联系 (1)视图是已经编译好的SQL语句,是基于SQL语句的结果集的可视化的表,而表不是. (2)视图没有实际的物理记录,而表有. (3)表是内存,视图是窗口. (4 ...

  3. mysql中视图和表的区别及联系,mysql 中视图和表的区别以及联系是什么?

    表是内容,视图是窗口.视图是已经编译好的sql语句,是基于sql语句的结果集的可视化的表,而表不是. 2)实与虚 表属于全局模式中的表,是实表:视图属于局部模式的表,是虚表. 3)是否存在物理记录 视 ...

  4. mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...

    一.MySQL中使用从表A中取出数据来更新表B的内容 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin.SQL语言中不要显示的出现select关键字 upda ...

  5. Python在mysql中进行操作是十分容易和简洁的

    首先声明一下,我用的是Windows系统! 1.在Python中对mysql数据库进行操作首先要导入pymysql模块,默认情况下,Python中是没有安装这个模块的,  可以在Windows的命令行 ...

  6. mysql中的操作指令,MySQL中常用指令操作的介绍(代码示例)

    本篇文章给大家带来的内容是关于MySQL中常用指令操作的介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. l 创建数据库:CREATE DATABASE table_n ...

  7. 13、mysql中视图的应用

    是什么 视图是一种有结构没结果的虚拟表,其结构是从基表中产生的,视图主要用于查询数据.在sql层面上来看,视图就是对select查 询语句的封装,我们看到的虚拟表(也就是视图)就是select语句查询 ...

  8. MySQL中视图和触发器学习

    创建视图的语法: 其中,algorithm是可选参数,表示视图选择的算法,它有三个选项:undefined,merge,temptable.Undefined表示让MySQL自动选择所要使用的算法:m ...

  9. mysql 日期详解,MySQL中如何操作日期的详解

    日期是数据库存储很重要的一部分,下面总结下在MySQL中常用的日期操作 1.select curDate(); #获取当前日期select curTime(); #获取当前时间select now() ...

最新文章

  1. python精彩编程200例pdf下载-最经典的25本Python编程开发电子书(附下载地址)!...
  2. C. Woodcutters【贪心】
  3. Socket之UDP客户端【Python】
  4. P4015 运输问题
  5. webcontent 与 webroot 问题解决
  6. java+JNI 生成包头文件与调用实例
  7. macbook pro M1Pro安装java开发环境,jdk和eclipse安装包快速下载方式
  8. 汇川技术小型PLC梯形图编程系列教程(零):梯形图编程学习指南
  9. 基于马科维茨与蒙特卡洛模型的资产最优配置模型(Matlab代码实现)
  10. wincc控件之FlexGrid系列(注册安装)
  11. d3d示例程序_3D打印改变我们现实的10个示例
  12. 数据治理---Apache Atlas元数据管理
  13. canvas绘制图片时宽高2倍
  14. php导出word文档图片不显示,word文档几种不显示图片的解决方法
  15. 折线图css,echarts实现折线图的代码(附图)
  16. EtherCAT运动控制卡的电子凸轮追剪飞剪等应用(一)
  17. 等保合规2022系列 | 一个中心+三重防护,助力企业等级保护建设更科学
  18. 微信内置浏览器清除 cookie
  19. 剧推|2019hulu原创剧集激情推荐!
  20. Deep Learning for Image and Point Cloud Fusion in Autonomous Driving: A Review(自动驾驶图像点云融合深度学习综述)论文笔记

热门文章

  1. python实现复制文件内容_python实现复制大量文件功能
  2. 玩家端游经常掉线怎么办
  3. 汤姆大叔博客笔记【随时更新】
  4. linux卸载docker
  5. 黑马前端h5团队开发代码规范
  6. 301和302状态码区别
  7. 基于ZYNQ移动机器人控制器设计(3)控制器硬件方案选型
  8. Day675.Tomcat的“高层们” -深入拆解 Tomcat Jetty
  9. ansible:permissive: access permissions must restrict access to only the owner
  10. 玩王者技术太菜,或许读者可以看看小编的这篇文章