MySQL视图

【MySQL】视图 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自我们定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 阅读详情

在MySQL中,视图是一张虚拟表,但是它本身并不存储任何数据。当使用 SQL语句访问视图时,它每次返回的数据是从其他表中临时生成的。在大多数情况下,MySQL中视图和普通表是被同等对待的,不过,视图和表还是有差别,比如视图不能创建触发器,也不能建立索引等。

一、创建视图

CREATE [OR REPLACE] [ALGORITHM = UNDEFINED | MERGE | TEMPTABLE ] VIEW v_name AS 查询语句 [WITH CHECK OPTION] ;

这里的查询语句可以是任意的,因此,视图又分为单表视图(即数据来自于一个表)和多表视图(即数据来自多个表)。

视图一旦被创建,就会生成一个结构文件 .frm。

创建视图的两种算法

视图的实现可以使用两种算法,第一种是 merge算法,第二种是 temptable算法。

1.merge(合并算法)

当用户发起对视图的查询时,服务器将视图 SQL与外部查询 SQL 合并,然后执行并返回结果给客户端。这种算法实现的视图查询效率较高,但是视图SQL中如果包含 GROUP BY、DISTINCT、任何聚合函数、UNION、子查询等时,也就是说如果不能在原表记录视图记录中建立一一映射的场景中,MySQL都会强制使用临时表算法来实现视图。

2.temptable(临时表算法)

当用户发起对视图的查询时,都将执行视图的 SQL语句来形成一个临时表,再用用户的SQL去临时表中查询相关数据。

执行:
CREATE VIEW V1 AS (SELECT * FROM TABLE1 ORDER BY 字段名1);
SELECT * FROM V1 WHERE 条件 ORDER BY 字段名2;

相当于执行:
SELECT * FROM ( SELECT * FROM TABLE1 ORDER BY 字段名1 ) AS TEMP WHERE 条件 ORDER BY 字段名2;

默认情况下,MySQL 会在这两种算法中选择一个。

二、查

从视图中获取数据时就把它当作一个普通的表就可以了,因此无论是普通查询还是复杂查询,视图都可以胜任。

如果想查看视图结构,SHOW TABLES [LIKE] ‘xxx’、DESC tbl_name、SHOW CREATE TABLE tbl_name、SHOW CREATE VIEW v_name 都是可以的。

三、增删改

MySQL中可以通过视图来影响视图的基表,包括更新、删除、增加数据。

下列情况下,对视图数据的增删改将失败:

1、新增数据时,由于视图中没有的字段在基表中将为NULL,因此,若该字段为 NOT NULL并且没有设置默认值,对视图的新增就会失败。
2、如果视图SQL中包含了 GROUP BY、UNION、聚合函数等,对视图的增删改将失败。
3、如果视图SQL为关联语句,那么对视图的增改所涉及到的列必须来自于同一个表中,否则失败。若来自于一张表,对视图的操作也只会影响到这一张表。注意,不能对关联视图数据进行删除。
4、创建视图时,如果加了 WITH CHECK OPTION ,那么对于视图的增改,必须使新得到的视图仍然满足创建视图时的 WHERE条件。否则操作将失败。

对于视图的管理
删除视图:
DROP VIEW [IF EXISTS] v_name;
修改视图结构:
ALTER VIEW v_name [(字段名1,字段名2,…)] AS (查询语句)

四、使用视图的好处

使用视图可以简化开发,将一些复杂的SQL语句保存为视图,之后的操作都可以对视图进行。并且,视图可以实现基于列的权限控制,对外选择性地提供数据,而不用去真正地在系统中创建列权限。

【MySQL】mysql 视图转物化视图 create view stu_class (编号,姓名,班级)asselect student.id,student.name,stu_info.class from student,stu_info where student.id=stu_info.id;例一:现有一stu_info表(id,class,address),id为学生编号,创建视图,包含编号,姓名,班级。例一:现有student表(id,name,math,chinese),创建视图包含数学成绩,语文成绩,总成绩。 阅读详情

相关推荐

mysql视图原理与用法实例小结

主要介绍了mysql视图原理与用法,结合实例形式分析了mysql视图的概念、原理、创建、使用方法及相关注意事项,需要的朋友可以参考下

mysql 只备份表备份视图_MySQL(视图算法、数据表备份-存储引擎对比、单表备份-还原、SQL还原、增量备份)...

mysql.exe -h localhost -P 3306 -u root -puse mydb;—— 进入数据库查看:show index from 表名\Gdesc:查看表结构select * from 表名:查询所有数据视图算法:系统对视图以及外部查询视图的select语句的一种解析方式一、视图算法分三种1)undefined:未定义(默认的)2)temptable:临时...

weixin_39733146的博客 566

NT35310 LCD屏的初始化与图形显示实战:从画点到UI设计的完整指南

本文详细介绍了NT35310 LCD屏的初始化与图形显示实战,从硬件配置到UI设计全流程。内容包括8080总线连接、初始化序列、基础图形绘制算法、显示优化技巧以及UI框架实现,帮助开发者快速掌握TFT-LCD驱动开发技术,适用于工业控制和智能家居等嵌入式应用场景。

table的专栏 370

MySQL 基础知识(九)之视图

视图是一张并不存储数据的虚拟表,其本质是根据 SQL 语句动态查询数据库中的数据。数据库中只存放了视图的定义,通过 SQL 语句使用视图时,会根据视图的定义进行查询。简化代码:对于复杂的查询,通过视图可以不用写那么多代码增加数据的安全性:通过视图,用户只能对指定的数据进行操作查询性能不好:在很多场景下,对视图的查询无法使用基表(基表是创建视图时使用的表)的索引,需要对所有基表进行全表扫描后,将返回结果保存到临时表,再进行查询维护代价高:基表发生变化时,视图也要进行更改,这需要一定的维护成本。

zjs246813的博客 2216

SPSS实战:5步搞定多指标联合诊断的ROC曲线分析(附Logistic回归教程)

本文详细介绍了如何使用SPSS软件进行多指标联合诊断的ROC曲线分析。通过5个实战步骤,从数据准备、二元Logistic回归建模生成综合预测概率,到绘制并比较单指标与联合模型的ROC曲线,帮助临床研究者有效整合多个诊断指标,提升模型判别能力(AUC),实现诊断效能的优化。

mqtt6iot的博客 1422

TC275-AutoSAR实战:Davinci Cfg多核OS配置与调试技巧

本文详细介绍了在TC275芯片上使用Davinci Cfg工具进行AutoSAR多核操作系统配置的实战步骤与调试技巧。内容涵盖从导入arxml文件的常见“坑”开始,到配置Det、EcuC、创建多核OS实例、关联OS应用、创建任务与设置优先级调度,最后分享了利用Det日志、调试器多核视图及处理核间通信与缓存一致性等关键调试方法,旨在帮助开发者高效完成复杂车载ECU软件集成。

weixin_29219189的博客 488

【MySQL进阶】MySQL视图详解

小杨带你学MySQL进阶内容视图的相关知识,一文让你掌握视图的概述,视图的增删查改操作,视图数据的增删查改操作,视图的级联检查和非级联检查以及视图的优缺点。

小杨的博客 5431

RagFlow实战:如何用DeepDoc引擎高效处理扫描PDF文档(附完整代码解析)

本文详细解析了如何利用RagFlow的DeepDoc引擎高效处理扫描PDF文档。通过实战演示从环境搭建、PDF预处理、文本检测与识别,到布局分析与表格结构提取的完整流程,并提供了完整的代码实现。该方案超越了传统OCR,能输出保留原始版面信息的结构化数据,为构建高质量知识库提供了强大支持。

weixin_29245767的博客 300

【MySQL视图】视图处理算法 , 创建 {单表,多表,视图中创建视图},查看,和修改。最详细来这里!

视图是存储,在调用的时候产生一个结果集的查询。一个视图作为一个虚拟表。

duanjiacheng5015的博客 4378

8.5/Q1,Charls最新高分文章解读!

8 257名受试者中,672人(8.14%)在9年内发生过卒中。在调整的多因素cox回归模型中,TyG和ABSI仍然是卒中的预测因素,TyG的HR为1.25(95%CI:1.06~1.47),ABSI的HR为1.33(95%CI:1.06~1.68)。TyG和ABSI联合诊断效能最高(AUC:0.579,95%CI:0.553~0.597),而TyG(AUC:0.566,95%CI:0.544~0.587)和ABSI(AUC:0.533,95%CI:0.524~0.597)的诊断效能最低。

gsky_sci的博客 1015

ximalaya 新xm-sign逆向思路

本文主要介绍目标网站新xm-sign值的逆向思路。仅代表个人理解,如有其他建议可在评论区沟通。声明仅仅记录一下自己的学习方法,不作为其他参考、更不作为商业用途。如有侵犯请联系本人删除。

weixin_66580433的博客 2017

【Mysql】视图

Mysql的视图概念,作用,使用修改删除视图

2303_77535762的博客 888

ATE FT ChangeKit学习总结-20250630

半导体封装测试中的ChangeKit是Handler测试机的关键配套治具,主要用于适配不同芯片封装尺寸的FT测试。其主要特点包括:1)适应性,可快速切换不同测试设置;2)精准性,确保器件测试安全;3)高效性,减少停机时间。主要组件含Shuttle传送机构、HotPlate预热盘、DockPlate连接件和Contactor压头。设计需考虑Handler型号、芯片规格及PCB匹配(如140mm标准孔位),特别在低温测试时需注意吹气块布局。ChangeKit实现了测试设备的灵活配置,提升了半导体测试效率。

歌颂苦难的行为是无耻的; 1752

mysql 视图

视图是从一个或多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以不用看到整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。 1 、视图简介 视图由数据库中的一个表或多个表导出的虚拟表。其作用是方便用户对数据的操作。 1.1 视图的含义 视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表。视图还可以从已经存在的视图的基础上定义。数据库中只存放了视图的定义,而并没有存放视图中的数

weixin_45441862的博客 2311

2025年06月中国电子学会青少年软件编程(图形化)等级考试试卷(三级)答案 + 解析

2025年06月中国电子学会青少年软件编程(图形化)等级考试试卷(三级)答案 + 解析

伶俐角少儿编程 340

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

mysql之视图

保姆级教程,实操有效

qq_66129888的博客 1548

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

mysql建立视图_MySQL视图的应用之创建视图

MySQL视图的应用之创建视图视图也称虚表,包括执行某个查询返回的一组记录。视图可以简化获取数据的方法,并通过别名来实现抽象查询。为了简化查询,在实际项目开发过程中,通常可以采用为数据库中的某个表建立视图的方式。在建立的视图中只有开发人员所关心的字段。分别在输入框中输入登录用户的用户名和密码,单击“进入”按钮后,如果用户输入错误的用户名或密码,则给出错误提示,反之如果输入的用户名和密码正确,则提示...

weixin_36198509的博客 649

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MySQL之视图

通常情况下,小型项目的数据库可以不使用视图,但是在大型项目中,以及数据表比较复杂的情况下,视图的价值就凸显出来了,它可以帮助我们把经常查询的结果集放到虚拟表中,提升使用效率。将经常使用的查询操作定义为视图,可以使开发人员不需要关心视图对应的数据表的结构、表与表之间的关联关系,也不需要关心数据表之间的业务逻辑和查询条件,而只需要简单地操作视图即可,极大简化了开发人员对数据库的操作。数据库中如果存在复杂的查询逻辑,则可以将问题进行分解,创建多个视图获取数据,再将创建的多个视图结合起来,完成复杂的查询逻辑。

曦 986

MySQL 视图

视图(View)是一个存储在数据库中的查询语句,可以被重复使用。视图本身不包含数据,数据库中只存储视图的定义语句。视图在许多情况下可以当作表来使用,因此也被称为虚拟表(Virtual Table)。

Doublelv 的博客专栏。 1209
上一篇: 一次MySQL查询的大致过程
下一篇: PHP中的ob_start()等函数
yyyiue
博客等级 码龄11年 12粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值