MySQL视图的讲解

【Mysql数据库 第8章】MySQL的视图讲解使用 介绍:视图(view)是一个虚拟表,非真实存在,其本质是根据SQL语句获取动态的数据集,并为其命名,用户使用时只需使用视图名称即可获取结果集,并可以将其当作表来使用。数据库中只存放了视图的定义,而并没有存放视图中的数据。这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。因此,视图中的数据是依赖于原来的表中的数据的。一旦表中的数据发生改变,显示在视图中的数据也会发生改变。简化代码,可以把重复使用的查询封装成视图重复使用,同时可以使复杂的查询易于理解和使用。 阅读详情

目录

为什么使用试图

创建视图

视图的优点


为什么使用试图

视图一方面可以帮我们使用表的一部分而不是所有的表,另一方面也可以针对不同的用户制定不同的查 询视图。比如,针对一个公司的销售人员,我们只想给他看部分数据,而某些特殊的数据,比如采购的 价格,则不会提供给他。再比如,人员薪酬是个敏感的字段,那么只给某个级别以上的人员开放,其他 人的查询视图中则不提供这个字段。

刚才讲的只是视图的一个使用场景,实际上视图还有很多作用。最后,我们总结视图的优点。

创建视图

用法:

CREATE [OR REPLACE]

[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

VIEW 视图名称 [(字段列表)]

AS 查询语句

[WITH [CASCADED|LOCAL] CHECK OPTION]

对创建的视图基层数据进行增删改查操作与对table无太大区别,from 视图的名称即可

不可更新的视图

  • 在定义视图的时候指定了“ALGORITHM = TEMPTABLE”,视图将不支持INSERT和DELETE操作;
  • 视图中不包含基表中所有被定义为非空又未指定默认值的列,视图将不支持INSERT操作;
  • 在定义视图的SELECT语句中使用了 JOIN联合查询 ,视图将不支持INSERT和DELETE操作;
  • 在定义视图的SELECT语句后的字段列表中使用了 数学表达式 或 子查询 ,视图将不支持INSERT,也 不支持UPDATE使用了数学表达式、子查询的字段值;
  • 在定义视图的SELECT语句后的字段列表中使用 DISTINCT 、 聚合函数 、 GROUP BY 、 HAVING 、 UNION 等,视图将不支持INSERT、UPDATE、DELETE;
  • 在定义视图的SELECT语句中包含了子查询,而子查询中引用了FROM后面的表,视图将不支持 INSERT、UPDATE、DELETE; 视图定义基于一个 不可更新视图 ;
  • 常量视图。

修改视图

方式1: 使用CREATE OR REPLACE VIEW 子句修改视图

方式2: ALTER VIEW

删除视图

删除视图只是删除视图的定义,并不会删除基表的数据。

删除视图的语法是: DROP VIEW [IF EXISTS] 视图名称;

视图的优点

  1. 操作简单
  2. 减少数据冗余
  3. 数据安全
  4. 适应灵活多变的需求
  5. 能够分解复杂的查询逻辑

mysql视图之创建可更新视图的方法详解 本文实例讲述了mysql视图之创建可更新视图的方法。分享给大家供大家参考,具体如下: 我们知道,在mysql中,视图不仅是可查询的,而且是可更新的。这意味着我们可以使用insert或update语句通过可更新视图插入或更新基表的行。 另外,我们还可以使用delete语句通过视图删除底层表的行。但是,要创建可更新视图,定义视图的select语句不能包含以下任何元素: 聚合函数,如:min,max,sum,avg,count等。 DISTINCT子句 GROUP BY子句 HAVING子句 左连接或外连接。 UNION或UNION ALL子句 SELECT子句中的子查询 立即下载

相关推荐

ISCC练习题MISC

解题技巧:看最后括号应该是IceCTF,先用了一键解码啥也没有啊,不对不对!好像是字符频率统计,转换网站:http://quipqiup.com/有人给你发了一串信息,你能解开吗?

m0_62737381的博客 1119

【mysql 视图】10分钟教你每天自动更新视图

这个 SQL 语句创建了一个名为 update_kiln_system_data_stddev 的事件调度器,每天凌晨 3:00 执行一次查询语句,将结果更新到视图 kiln_system_data_stddev 中。创建视图后,视图中的查询结果并不会自动更新,需要手动执行 SQL 查询语句或者使用事件调度器(Event Scheduler)来定期更新视图内容。假设我有如下语句,需要给下面语句创建视图,并自动每天更新,这样每次查询视图看到的就是最新的结果了。

赖德发的博客 4874

山景BP10_128DBG开发板ADC_Key驱动

最近在学习山景BP10_128DBG开发板,想使用开发板上的按键。看了看原理图和之前用过的按键好像有点不一样。常见的按键都是判断IO口是否被拉低或拉高来判断按键是否被按下。山景BP10_128DBG开发板上的按键是ADC按键,每个按键按下之后ADC的采样值是不同的,通过ADC采样回来的值进而判断哪个按键按下。这种方式核心思想就是用一个ADC通道来节约IO口,对于IO紧张的芯片是一个不错的解决思路。

weixin_56646002的博客 1311

关于mysql视图无法同步刷新的解决办法

在最开始构建项目时,用到视图是因为有一个查询的功能,是需要查询多张表关联显示数据的。 用视图就可以避免在mybatis中写复杂的查询语句,直接根据视图构建实体对象。 真正发现问题的时候,是在项目建完开始测试使用时,发现视图中的内容一直保持不变,在多方查找资料的情况下,才了解到视图因为是虚拟的,其查询是基于缓存查询,因此当视图查询的缓存存在时,就会一直使用其缓存,那么...

qq_16961587的博客 3983

R语言:基于Spatstat包的单变量和双变量平面Ripley‘s K函数分析

因为网上查找得到的R语言K函数分析的资料很少,Spatstat包的介绍也很少,所以抛砖引玉。本文简单介绍了使用R语言spatstat包的Kest,Kcross(Lcross)和Kinhom方法进行了单变量和双变量平面Ripley's K函数分析的方法及代码,希望有所帮助。

hsdcmax的博客 1万+

详细分析Mysql视图的基本知识 | 附基本操作

MySQL 视图是动态的,基于其定义的 SQL 查询结果实时生成,因此当基础表的数据发生变化时,视图中的数据会自动更新 视图不存储数据:视图本质上是对基础表的一种逻辑表示,它的内容由视图的 SQL 查询动态生成 实时性:每次查询视图时,MySQL 会执行视图的 SQL 查询,从基础表中获取最新的数据

码农研究僧的博客 1909

ISOLAR Autosar BSW 配置 之 Com

Autosar ISOLAR Bsw Configuration 之 Com

qq_42262743的博客 453

Mysql数据库【视图】

数据库 视图

qq_45764888的博客 986

科研级YOLOv8 Neck革新:BiFPN双向特征金字塔赋能,让多尺度融合更高效的实战指南

在文件夹下新建BiFPN.py,将上述BiFPNLayer和BiFPN类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义Neck模块。

m0_64661770的博客 153

系统架构最佳实践 -- 统一身份认证系统

设计和实现一个高效、安全的统一身份认证系统需要考虑到系统架构设计、用户认证与授权、用户身份管理、安全性保障、日志记录与审计、高可用性与容错性,以及用户体验优化等多个方面。通过合理的架构设计、安全措施和用户体验优化,可以构建一个满足用户需求、提供安全可靠的身份认证服务的系统。本文将总结统一身份认证系统的架构设计与实践经验,帮助读者了解如何设计和实现一个高效、安全的统一身份认证系统。统一身份认证系统应支持详细的日志记录和审计功能。通过合理的身份认证策略和授权机制,可以确保用户身份的准确性和信息的安全性。

xiaoli8748的专栏 1709

Mysql视图详解

MySQL视图是一种虚拟表,它是基于SQL查询结果生成的,可以将查询结果存储在一个虚拟表中。用户可以像操作表一样操作视图,但视图没有实际的数据存储,而是通过查询操作实时生成结果。

weixin_65837469的博客 551

docker安装部署openclaw详细教程(安装、卸载、问题处理)

摘要: 本文详细介绍了使用Docker部署OpenClaw本地AI智能体框架的全流程,包括代码下载、容器化安装、交互式配置及Token设置。Docker方案解决了环境配置复杂、依赖冲突等痛点,提供开箱即用的隔离环境。教程涵盖常见错误(如EACCES权限问题、网关启动失败、设备配对需求)的解决方案,并提供了完整的卸载指南。通过Docker部署,用户可快速构建安全、一致的AI智能体开发环境,实现大模型与本地工具的高效连接。

少说,多做 4004

MySql视图原理讲解与使用大全

摘要:本文主要讲了MySql中视图的定义、原理和如何使用、创建、删除等 一. 视图概述 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。 对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或

u013111003的博客 1511

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Mysql视图讲解

概念 什么是视图? 其实视图就是相当于一个虚拟表,它并不是真实存在数据的一张数据表,而是作为一个查询语句保存在数据库中的 作用 视图可以帮助我们在使用大量重复编写sql的时候可以使用视图来代替,比如编程中封装一个方法来让多个地方都可以直接调用,降低了开发成本,而且相对来说更加安全 语法 单表 首先我们需要创建一个视图 CREATE VIEW emp AS SELECT * FROM employees; 上面这行sql代表我们创建了一个名字叫emp的视图 那么我们怎么使用这个视图呢? 很简单!只需要和普通

冷风DMW的博客 347

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mysql 视图 algorithm_MySQL的视图讲解

1、什么是视图视图是从一个或多个表中查询出来的数据保存为视图,是一种虚拟存在的表。注意:数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变。2、为什么要使用视图重复利用SQL语句简化SQL查询,快速取数据只用知道表的部分结构保...

weixin_26789847的博客 3613

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

mysql数据库入门教程(11):视图讲解大全

一.视图的介绍 含义:虚拟表,和普通表一样使用 mysql5.1版本出现的新特性,是通过表动态生成的数据 举例说明什么是视图:假设一个年级有10个班,上面有领导来啦,说要检查舞蹈功底,学校为了应付检查,把每个班会跳舞的女孩子抽出来临时组成一个舞蹈班,这个班只在领导来啦才存在。这个班就是视图 案例说明讲解: #案例:查询姓张的学生名和专业名 以前我们的做法 SELECT stuname,majorname FROM stuinfo s INNER JOIN major m ON s.`majorid`=

总裁余(余登武)博客 2370

[MySQL][视图]详细讲解

[MySQL][视图]详细讲解

SnowK博客 4247

mysql视图讲解

什么是视图 :mysql视图是将我们的一段常用或者复杂的的SQL语句进行保存到视图里面。并且给视图取上别名,每次我们调用的时候可以直接调用我们视图方法进行执行SQL。 创建视图 : 案例代码: //创建视图 CREATE VIEW 视图名 as //查询语句 SELECT u.* from `user` u LEFT JOIN user_wallet w ON u.id = w.user_id //执行视图 SELECT * f

qq_38935605的博客 721

【MySQL】多表查询、函数、事务、约束、视图 详细讲解

自学总结MySQL中的 多表查询、函数、事务、约束、视图相关知识,涵盖广,知识点全面

August_._的博客 1605

MySQL高级篇之View视图讲解

常见的数据库对象: 对象 说明 表(TABLE) 表是存储数据的逻辑单元,以行和列的形式存在,列就是字段,行就是记录 数据字典 就是系统表,存放数据库相关信息的表。系统表的数据通常由数据库系统维护,程序员通常不应该修改,只可查看 约束(CONSTRAINT) 执行数据校验的规则,用于保证数据完整性的规则 视图(VIEW) 一个或者多个数据表里的数据的逻辑显示,视图并不存储数据 索引(INDEX) 用于提高查询性能,相当于书的目录 存储过程(PROCEDURE) 用于完成.

波波烤鸭的博客 3933

在powerpoint中默认的视图是_MySQL的视图讲解

1、什么是视图视图是从一个或多个表中查询出来的数据保存为视图,是一种虚拟存在的表。注意:数据库中只存放了视图的定义,而没有存放视图中的数据,这些数据存放在原来的表中。使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。视图中的数据依赖于原来表中的数据,一旦表中数据发生改变,显示在视图中的数据也会发生改变。2、为什么要使用视图重复利用SQL语句简化SQL查询,快速取数据只用知道表的部分结构保...

weixin_36176386的博客 536

mysql中 视图的优缺点,详细讲解MYSQL视图的作用及优缺点

一、概念1.视图是MySQL在5.0.1版本中加入的功能。它可以理解为一个虚表。2.之所以被称为虚表,是因为它只是存储了一个结构,并不存储真实的数据。行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果。3.视图并不是真的优化二、创建一个视图--创建视图的语法:create view 视图名称 as select语句;--创建一个视图:crea...

weixin_28475533的博客 1万+
上一篇: MySQL的约束详解
下一篇: 存储过程与存储函数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值