深入解析:【MySQL】视图

news/2026/1/20 15:35:50/文章来源:https://www.cnblogs.com/gccbuaa/p/19507115

目录

1.什么是视图

2.视图的基本使用

2.1.准备工作

2.2.创建视图

3.视图与基表的相互影响

3.1.修改视图影响基表

3.2.修改基表影响视图

4.删除视图

?5.关于视图


1.什么是视图

视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。

视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。

视图是一种虚拟表,其内容由查询(通常是SQL查询)定义。**视图本身不存储数据,而是基于一个或多个基表(实际存储数据的表)生成。**当访问视图时,数据库系统会自动执行定义视图的查询,并返回结果集。

特性

  1. 虚拟性:视图不存储实际数据,只存储查询定义。因此,视图在数据库中占用的空间非常小。
  2. 数据独立性:视图提供了一个逻辑层,使得应用程序可以独立于基表结构的变化。例如,即使基表的列名或结构发生变化,只要视图的查询定义保持不变,应用程序仍然可以通过视图访问数据。
  3. 安全性:视图可以用于限制用户访问基表中的敏感数据。通过定义视图,可以仅暴露用户需要访问的列和行,从而保护数据的机密性。
  4. 简化复杂查询:视图可以封装复杂的SQL查询,使得用户可以通过简单的查询语句访问复杂的数据集。

视图与基表的关系

  • 数据变化的影响
    • 当视图中的数据发生变化时(例如通过INSERT、UPDATE或DELETE操作),这些变化会反映到基表中。但是,这种变化受到视图定义和数据库权限的限制。
    • 同样地,当基表中的数据发生变化时,这些变化也会反映到基于该基表的视图中。
  • 更新限制
    • 并非所有视图都是可更新的。例如,如果视图包含聚合函数(如SUM、AVG)、DISTINCT关键字、GROUP BY子句或子查询,则该视图通常是不可更新的。
    • 某些数据库系统允许通过视图进行更新操作,但会施加额外的限制以确保数据的一致性和完整性。

2.视图的基本使用

2.1.准备工作

首先我们去这个网站下载一个.sql文件:阿里云盘分享 (alipan.com)

拿到该数据库文件以后,我们可以先打开该文件进行查看其内容:

vim scott_data.sql

我们会发现其里面都是SQL记录,对于MySQL我们备份其数据库时,其实备份的全部都是一条条有效的SQL记录,通过重新执行这些SQL,我们便能够得到和原来一摸一样数据库。

接下来我们就可以在mysql中将这个数据库给创建出来了:

source 该文件的绝对路径;

例如我这里是:

source /home/zs_113/scott_data.sql

然后我们查询我们的数据库,发现数据库中多了一个scott的数据库:

show databases;

我们进去看看

use scott;
show tables;

这三张表是

  • EMP员工表
  • DEPT部门表
  • SALGRADE工资等级表

我们先分别查看一下表结构和表内容:

  • EMP员工表

    desc emp;
    select * from emp;

  • DEPT部门表

    desc dept;

    select * from dept;

  • SALGRADE工资等级表

    desc salgrade;
    select * from salgrade;

接下来我们的查询都会基于上面这一个数据库。

2.2.创建视图

语法

create view 视图名 as select语句;

说明

  • 创建视图时会先执行select语句,然后用查询得到的结果来创建视图。

例如下面的一个场景,当我们要查询每个员工及其对应的部门名称时,需要使用员工表和部门表进行多表查询,并筛选出员工的部门号等于部门的部门号的记录。如下:

select ename, dname from emp inner join dept on emp.deptno=dept.deptno;

当您执行这个查询时,数据库会查找emp表和dept表中所有deptno字段值相匹配的行,并返回这些行的ename和dname字段值。

例如,如果emp表中有一个员工其deptno为10,而dept表中有一个部门其deptno也为10,那么这个员工的名字和该部门的名字就会被一起返回作为查询结果的一部分。

如果该查询结果会被频繁用到,那我们就可以给上述查询结果创建视图,这样我们以后就可以直接访问该视图,而不用每次都先对表进行内连接,然后进行筛选。

create view v_ename_dname as select ename, dname from emp inner join dept on emp.deptno=dept.deptno;

这是是一个创建视图的命令,该视图名为v_ename_dname,它基于emp(员工)表和dept(部门)表的INNER JOIN结果。这个视图将展示每个员工的名字(ename)和他们所属部门的名字(dname)。

然后我们可以通过show tables命令就能看到这个视图。如下:

show tables;

创建了这张v_ename_dname视图后,我们就可以直接通过查询视图,来查看每个员工及其对应的部门名称了。如下:

select * from v_ename_dname;

3.视图与基表的相互影响

3.1.修改视图影响基表

例如下面我们要在视图中修改员工SMITH的名称为小写:

update v_ename_dname set ename='smith' where ename='SMITH';

然后我们现在去emp表中查看这个更改是否生效了。

select * from emp;

确实生效了,说明修改视图会影响基表

3.2.修改基表影响视图

参看部门表:

select * from dept;

假设我们现在要将accounting部门改为HR部门。

update dept set dname='HR' where deptno=10;

然后我们查看视图v_ename_dname:

select * from v_ename_dname;

发现视图中的数据被改变了!说明修改基表会影响视图

4.删除视图

删除视图的SQL如下:

DROP VIEW view_name;

比如将刚才创建的视图删除后,在数据库中就看不到这个视图了。如下:

drop view v_ename_dname;

5.关于视图

  1. 命名唯一性
    • 与普通表一样,**每个视图在数据库中都必须有唯一的名称。**这意味着您不能有两个同名的视图,也不能有一个视图和一个表具有相同的名称(在同一个数据库模式下)。
  2. 视图数量
    • 理论上,您可以创建任意数量的视图,但需要注意数据库的性能和资源限制。复杂的视图可能会增加查询处理的开销,特别是在涉及大量数据或复杂连接时。
  3. 索引和触发器
    • 视图本身不支持索引。您不能在视图上直接创建索引,因为视图是基于查询定义的,不存储实际数据。
    • 同样,视图也不能有触发器与之关联。触发器是响应表上的特定事件(如INSERT、UPDATE或DELETE)而自动执行的存储程序。由于视图不直接存储数据,因此无法在其上定义触发器。
  4. 安全性
    • 视图提供了一种提高数据访问安全性的方法。通过创建仅包含用户需要访问的字段和行的视图,您可以限制用户对底层表的直接访问。用户只能看到视图定义的内容,而不能看到或修改其他数据。
    • 要访问视图,用户必须具有足够的权限。这意味着数据库管理员可以控制哪些用户可以查看或修改视图中的数据。
  5. ORDER BY子句
    • 在创建视图时,您可以使用ORDER BY子句来指定视图中行的排序方式。然而,需要注意的是,当从该视图检索数据时,如果查询中也包含ORDER BY子句,那么视图中的排序将被覆盖,以查询中的排序为准。
    • 实际上,在视图中使用ORDER BY子句通常是不推荐的,因为视图的目的是提供一种数据访问的抽象层,而不是对数据进行排序。排序应该在最终查询中根据需要进行。
  6. 视图与普通表一起使用
    • 视图可以像普通表一样在查询中使用。您可以对视图进行单表查询,也可以将视图与其他表或视图进行连接(内连接、外连接等)。
    • 这使得视图成为一种非常强大的工具,可以简化复杂查询的编写和维护。通过创建视图来封装复杂的查询逻辑,您可以使数据库的使用更加直观和方便。

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

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

相关文章

2026南宁市英语雅思培训辅导机构推荐;2026权威出国雅思课程排行榜 - 苏木2025

基于2024-2025雅思官方发布的中国大陆地区考生成绩大数据报告,南宁市雅思考生整体均分为5.8分,其中写作、口语单科平均分分别低至5.6分、5.5分,显著低于全球均值。无论是兴宁区、江南区、青秀区、西乡塘区、邕宁区、…

2026南宁市英语雅思培训辅导机构推荐2026权威出国雅思课程排行榜 - 苏木2025

雅思考试作为出国深造、职场晋升的核心语言凭证,近年来在南宁市兴宁区、江南区、青秀区、西乡塘区、邕宁区、良庆区、武鸣区及横州市、宾阳县、上林县、马山县、隆安县等全域区县的报考热度持续攀升。但多数考生在备考…

2026Java面试常见知识点总结!

我决定以面试的角度,深度聊聊一些面试中经常会被问及的知识点;希望能够帮助你们系统的梳理Java程序员面试中必须要掌握的知识技能。为啥要深度聊聊?就是想让你们把重心都放到技术的深度上来。因为当下面试,面试官更在意的是你对某…

192S06M0132B控制系统模块

192S06M0132B 控制系统模块特点核心控制单元:承担数据处理与指令执行,保证系统高效响应。高可靠性设计:工业级元件,耐高温、防尘、防振动,适合连续运行。灵活扩展:支持与其他模块无缝组合,便于系…

2026年评价高的反渗透超纯水设备,电子行业超纯水设备,超纯水设备厂家采购决策指南 - 品牌鉴赏师

引言在 2026 年,随着电子、半导体等行业的飞速发展,对超纯水设备的需求日益增长,其质量和性能直接影响到产品的品质和生产效率。为了帮助电子行业、半导体行业等用户在采购超纯水设备时做出更科学、合理的决策,我们…

专业气体分析仪采购指南:七大技术类别厂家推荐与对比 - 品牌推荐大师

当前,气体分析仪市场正经历着一场由严格法规、技术进步与产业升级共同驱动的深刻变革。行业已从单一的安全预警,演进为支撑智能制造、超低排放和高端工艺控制的精密感知核心。理解这一市场的最新动态与技术脉络,是做…

VME-HDD-4G单插槽软盘/硬盘模块

VME-HDD-4G 单插槽软盘/硬盘模块特点概览:单插槽设计:紧凑结构,便于安装在标准 VME 机箱中。高容量存储:4GB 存储空间,满足工业数据存储和日志记录需求。兼容软硬盘:可支持传统软盘格式及硬盘存储&#xff…

2026年1月广东定制密封圈 /车削密封件 /超高压密封/ 聚氨酯密封 /非标密封厂家企业哪家好 - 2026年企业推荐榜

一、核心结论 1.1 核心评估框架 本次评估基于四大核心维度构建闭环体系,精准筛选行业头部企业:一是技术研发能力(核心材料配方、专利储备、智能技术应用);二是定制化响应效率(打样周期、批量交付时效、柔性生产能…

【大数据毕设全套源码+文档】基于Python的王者荣耀战队的数据分析系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026四川口碑实木楼梯品牌深度选型指南 - 2026年企业推荐榜

转载自:https://www.pp10top.com/rankinglis/283843.html 文章摘要 本文基于2026年四川地区实木楼梯市场趋势,提供一份专业选型指南,深度剖析多家服务商,重点推荐四川卡芃特楼梯有限公司。内容涵盖行业全景、服务商…

Linux系统编程:内核协议栈,我把网络IO移到用户态后,延迟从毫秒级降到微秒级

写网络服务的程序员,迟早会撞上这堵墙:服务器性能上不去。 CPU占用率不高,内存绑绑有余,网卡带宽远没到上限。但QPS就是卡在10万左右,怎么调都上不去。延迟更头疼,P99动不动飙到几十毫秒。对实时游戏这类场景?这简直是灾难。 问题出在哪?往往不在你的业务代码,而在L…

2026年1月中国大巴车租赁、包车、租车、商务车租赁、旅游包车公司行业竞争格局深度分析报告 - 2026年企业推荐榜

一、核心结论​ 1.1 核心评估框架​ 本报告基于行业本质与客户核心诉求,构建四大评估维度:​ 车况管理:以车辆平均车龄、新能源占比、维保体系完善度为核心指标,直击出行安全痛点​ 调度效率:通过订单响应时效、跨…

网络安全基础核心框架一篇搞定:专为零基础设计的极简入门指南

一、网络安全概述 1.1 定义 信息安全: 为数据处理系统建立和采用的技术和管理的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因遭到破坏、更改和泄露。 网络安全: 防止未授权的用户访问信息防止未授权而试图破坏与修改信息 1.2 信息安全…

封箱机怎么选?2026年实力厂家质量评测来袭,覆顶缠膜机/行李包装机/自动套膜机/打包缠膜一体机,封箱机销售厂家怎么选购 - 品牌推荐师

随着工业自动化进程加速,全自动封箱机作为包装环节的核心设备,其技术迭代与市场需求呈现同步增长趋势。据行业数据显示,2025年国内封箱机市场规模突破35亿元,年复合增长率达12%,其中智能化、柔性化设备占比超60%。…

搞定Z世代求职者,你的招聘“操作系统”该升级了

各位HR伙伴,是否感觉招聘画风“突变”?严谨的JD阅读量不如团队趣味日常照,正式的邀约换来表情包回复,公司战略他们更关心“是否加班”和“同龄人多不多”……不必困惑,这标志着人才战场主力已迭代为“Z世代”。面对这群…

红色展厅展馆设计公司哪家好?盛世笔特经验丰富 - 工业品牌热点

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家红色展厅设计标杆企业,为政府机关、国央企、科研院所等单位选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:盛世笔特国际文化创意产业集团 推荐…

小白必看的10个网络安全基础核心概念,从零构建你的知识骨架

一、网络安全概述 1.1 定义 信息安全: 为数据处理系统建立和采用的技术和管理的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因遭到破坏、更改和泄露。 网络安全: 防止未授权的用户访问信息防止未授权而试图破坏与修改信息 1.2 信息安全…

2026年Q1四川照明灯具定做厂家综合比较 - 2026年企业推荐榜

转载自:https://www.remenpp.com/rankinglis/285213.html 文章摘要 本文基于2026年第一季度四川照明灯具定制行业的发展趋势,为您推荐前十家优秀厂家(排名不分先后)。文章提供详细品牌介绍、数据佐证和案例分享,旨…

绘制你的第一张网络安全知识地图:一看就懂的体系化入门路径

一、网络安全概述 1.1 定义 信息安全: 为数据处理系统建立和采用的技术和管理的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因遭到破坏、更改和泄露。 网络安全: 防止未授权的用户访问信息防止未授权而试图破坏与修改信息 1.2 信息安全…

Keil:函数级优化技巧全解

目录 一、Keil 优化设置的核心方法 1. 全局优化等级设置(基础) 2. 函数级单独优化(核心) 方式 1:使用 __attribute__ 关键字(推荐,通用) 方式 2:使用 #pragma 指令&…