MySQL学习(16):视图

视图是一种虚拟临时表,并不真正存储数据,它的作用就是方便用户查看实际表的内容或者部分内容

1.视图的使用语法

(1)创建

create view 视图名称 as select语句;
#视图形成的虚拟表就来自于select语句所查询的实际表,这个实际表称为视图的基表

(2)查询

#查询视图创建语句:
show create view 视图名称;#查看视图数据:
select * from 视图名;
#由于视图的数据就来自实际表,所以可以直接把视图当做普通表来查询

(3)修改

方式一:
replace view 视图名 as select语句;方式二:
alter view 视图名 as select语句;

(4)删除

drop view 视图名;

2.视图的检查选项

视图虽然是虚拟表,不存储数据,但依然可以对它进行增删改,只是增删改的对象是视图的基表。

要了解视图的检查选项的作用,可以先观察下面的实例:

这条语句创建的视图是,基表加上where条件创建的,那么当对这个视图进行增删改,但却违反where条件时,增删改会执行成功吗?

用上图中的2条语句插入数据(第二条违反了where条件),结果全部都执行成功了。

会出现这种情况,就是因为创建视图的语句中缺少了检查选项

视图的检查选项有2种:cascaded、loacl

2.1 cascaded(默认)

在创建视图的语句后添加with check option(也就是检查选项)后,

create view 视图名称 as select语句 with check option;

视图的增删改就会检查创建时所设置的条件,如果违反条件,则增删改就会执行失败。

with check option是with cascaded check option的简写,如果写成with loacl check option则代表loacl检查

cascaded检查个特别的注意事项:

由于视图可以根据其他视图创建,所以就存在是否继承其他视图的约束条件的问题

(1)视图2(有检查选项)←视图1(无检查选项)←基表

像上图这样,stu_v_2视图根据stu_v_1创建,同时又在stu_v_2创建语句后加了cascaded检查选项,那么stu_v_2的增删改就会同时判断stu_v_2、stu_v_1两个视图的约束条件。也就是说,上图只有15,Tom添加成功了,其他2条都失败了

(2)试图3(无检查选项)←视图2(有检查选项)←视图1(无检查选项)←基表

继续前面的案例。若如上图这样创建stu_v_3,那么stu_v_3的增删改会看stu_v_2及stu_v_1的约束条件,而不看stu_v_3自身的约束条件(因为stu_v_3创建语句本身没加检查选项),也就是上图中的前2条语句添加数据成功,第3条语句添加数据失败。

2.2 local

(1)视图2(有检查选项)←视图1(无检查选项)←基表

对于上图的v2视图,在进行增删改时只看自己的约束条件,而不看v1的约束条件。

如果v1的创建语句后也有with loacl check option,那么就会同时看v2、v1的约束条件了。这也是两种检查选项的主要区别

(2)试图3(无检查选项)←视图2(有检查选项)←视图1(无检查选项)←基表

对于上图的v3视图,在进行增删改时只看v2的约束条件,而不看v3、v1的约束条件

3.视图增删改的条件

对视图进行增删改的前提,是视图中的行要与基表中的行一对一。

若视图包含以下任何一项,就违反了这一前提:

(1)聚合函数或窗口函数,如sum、min、max、count等

(2)distinct(去重)

(3)group by(分组)

(4)having

(5)union或union all(联合查询)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue使用阿里巴巴字体

阿里巴巴字体使用效果 字体包下载 官方下载链接 解压字体文件到指定的文件夹 引用字体文件 我的是uniApp的项目,所以在公共css样式中引用这个字体文件 /*每个页面公共css */ font-face {font-family: "alimamFont";font-weight: 400;src: url("~/s…

Fiddler Mock测试详解

在软件开发过程中,Mock测试是一种非常有效的测试方法,特别是在处理复杂依赖或尚未完成的服务时。Fiddler作为一款强大的网络抓包工具,也提供了Mock测试的功能,允许开发者在不实际调用后端接口的情况下,模拟接口响应&am…

将YOLOv8模型从PyTorch的.pt格式转换为TensorRT的.engine格式

TensorRT是由NVIDIA开发的一款高级软件开发套件(SDK),专为高速深度学习推理而设计。它非常适合目标检测等实时应用。该工具包可针对NVIDIA GPU优化深度学习模型,从而实现更快、更高效的运行。TensorRT模型经过TensorRT优化,包括层融合(layer …

为什么创业初期的ToB公司都要“交点学费”

“企业交学费”,本质上来说,就是企业成长中绕不开的“试错成本”,只能降低,无法完全避免。 但是,对于ToB初创企业来说,这个问题就相对棘手了。一是这个“费用”不可避免。二来,初创企业本来就没…

算法——二分查找(day10)

目录 69. x 的平方根 题目解析: 算法解析: 代码: 35. 搜索插入位置 题目解析: 算法解析: 代码: 69. x 的平方根 69. x 的平方根 - 力扣(LeetCode) 题目解析: 老…

构建未来智能:在Mojo模型中自定义模型架构的艺术

构建未来智能:在Mojo模型中自定义模型架构的艺术 在深度学习的世界里,模型架构的设计往往决定了算法的性能和适用性。Mojo模型,作为一个假想中的高级机器学习框架,允许用户实现自定义的模型架构来解决特定的问题。本文将深入探讨…

解决学生技能短板:泰迪智能科技2024年中职大数据实验室,全面提升学生实践能力

一、中职院校现状及实验室建设背景 在当今信息化时代,大数据技术已成为国家战略发展的重要方向。中职院校作为我国职业教育体系的重要组成部分,肩负着培养高素质技术技能人才的重任。然而,目前我国中职院校在大数据教育方面存在以下问题&…

一种docker start放回Error response from daemon: task xxx错误的解决方式

1. 问题描述 执行systemctl daemon-reload与systemctl restart docker命令后,发现docker中有的应用无法启动,并显示出Exit(255)的错误提示。 重新执行docker start 容器id后发现返回,Error response from daemon: task xxx的错误。 2. 问题…

2024巴黎奥运会:黑科技引领未来体育盛宴,创新技术点亮全球观众体验

在2024年巴黎奥运会上,黑科技的应用成为了引人注目的亮点。这些黑科技不仅提升了赛事的观赏性、体验度和组织效率,还展现了全球科技公司在前沿技术领域的创新能力。以下是一些主要的黑科技应用: 1. 超高清视频制作与传输 4K超高清三维声制作…

学习日志:双亲委派模型

文章目录 前言一、双亲委派模型二、双亲委派模型的执行流程三、双亲委派模型的好处四、打破双亲委派模型方法 前言 类加载器有很多种,当我们想要加载一个类的时候,具体是哪个类加载器加载呢?这就需要提到双亲委派模型了。 ClassLoader 类使用…

C++ | QQ后端暑期实习面试

tcp三次握手,四次挥手 断点续传 文件断点续传是一种机制,允许在网络传输中的文件传输过程中出现断开连接或传输中断的情况下,能够恢复传输并继续传输未完成的部分。其原理如下: 检测支持:首先,服务器端和…

Scrapy框架中,如何有效地管理和维护爬虫的日志记录?

在Scrapy框架中,日志记录是监控爬虫行为和调试问题的重要手段。合理地管理和维护爬虫的日志记录,可以帮助开发者更好地了解爬虫的运行状态,并及时发现和解决问题。以下是一些有效管理和维护Scrapy爬虫日志记录的技巧: 1. 配置日志…

react创建虚拟DOM的两种方式

React创建虚拟DOM的两种方式主要包括使用JSX和使用React.createElement函数。以下是这两种方式的详细说明: 1. 使用JSX创建虚拟DOM JSX是React中推荐的方式,它允许你在JavaScript代码中编写类似于HTML的结构。这些结构最终会被Babel等编译工具转换成Re…

十分钟给甲方发一个微信可查看的CAD图纸叠加航测成果案例

0.序: 无人机测绘成果的应用非常广,不论是做测绘的、做设计的还是做施工的,只要需要知道现场的状况,现在基本都用无人机做航测。 测绘的线化图,设计的方案、施工中拿到的设计图,基本都是dxf、dwg格式的CAD…

纯原创【车牌识别】基于图像处理的车牌识别——matlab项目实战(含GUI界面)详解

摘要 车牌识别系统乃计算机视觉与模式识别技术于智能交通领域的重要研究课题之一。其作用在于从复杂背景里提取运动中的汽车牌照,进而识别出车牌号码。车牌识别技术在高速公路电子收费、日常停车场管理以及交通违章监控等场景得到广泛运用。它的问世对于维护交通安全…

AI视界周刊第 2 期:Llama 3.1 开源、AI 训 AI,越训越傻、AI 搜索重燃战火

AI 视界周刊由战场小包维护,每周一更新,包含热点聚焦、应用破局、学术前沿、社区热议、智见交锋、跨界 AI、企业动态和争议 AI 八大板块,后续板块划分和内容撰写在周刊迭代过程中持续优化,欢迎大家提出建议。 欢迎大家来到《AI 视…

Linux 安装 GDB (无Root 权限)

引入 在Linux系统中,如果你需要在集群或者远程操作没有root权限的机子,安装GDB(GNU调试器)可能会有些限制,因为通常安装新软件或更新系统文件需要管理员权限。下面我们介绍可以在没有root权限的情况下安装GDB&#xf…

MongoDB - 聚合阶段 $match、$sort、$limit

文章目录 1. $match 聚合阶段1. 构造测试数据2. $match 示例3. $match 示例 2. $sort 聚合阶段1. 排序一致性问题2. $sort 示例 3. $limit 聚合阶段 1. $match 聚合阶段 $match 接受一个指定查询条件的文档。 $match 阶段语法&#xff1a; { $match: { <query> } }$ma…

图形学和音视频开发哪个更有钱景,更值得入行?

图形学有几个细分的方向&#xff0c;在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「音视频开发的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff0…

PHP教程002:PHP变量介绍

文章目录 一、PHP程序1、PHP标记2、PHP代码3、语句结束符;4、注释 二、PHP变量2.1 声明变量2.2 赋值运算符3、变量命名规则 一、PHP程序 PHP文件的默认扩展名是".php"PHP文件可以包含html、css、js 序号组成描述1<?php ... ?>PHP标记2PHP代码函数、数组、流…