当前位置: 首页 > news >正文

数据库作业

MySQL数据库视图知识点整理

6.1 视图的创建与查询

6.1.1 视图基础概念

视图属于逻辑虚拟数据表,本身不存储真实业务数据,所有数据均源自底层实体基础表。数据库仅持久保存视图对应的查询逻辑,不会存储视图查询结果;每次访问视图时,MySQL会自动执行视图绑定的SELECT查询,实时从底层数据表读取数据。

使用视图四大核心优势

1. 简化复杂查询逻辑:将多表联查、多层筛选的复杂SQL封装为视图,后续业务查询直接调用视图,无需重复编写冗长语句
2. 按需展示数据:可过滤冗余字段、筛选有效数据,仅对外暴露业务需要的内容
3. 屏蔽数据表底层关联:使用者无需掌握多张基础表的关联逻辑,降低使用门槛
4. 提升数据库权限安全:无需向用户开放完整实体表访问权限,仅分配视图查询权限,隔离敏感原始数据

6.1.2 视图创建语法

标准创建语句:

sql

CREATE [OR REPLACE] VIEW 视图名称 [(自定义列别名)]
AS SELECT 数据查询语句
[WITH [CASCADED | LOCAL] CHECK OPTION];


关键字释义

- OR REPLACE :若数据库内已存在同名视图,直接覆盖原有视图定义
- WITH CHECK OPTION :通过视图新增、更新数据时,录入内容必须匹配视图WHERE筛选条件,不符合则操作失败
- LOCAL :校验规则仅作用于当前视图,不向上追溯依赖视图
- CASCADED (默认规则):校验时同时校验当前视图与上层所有依赖视图的筛选条件

创建视图硬性限制

1. 同一数据库下,视图名称不可与数据表重名
2. 视图无法创建主键、索引、外键约束
3. 视图内的SELECT语句存在使用限制:不能嵌套FROM子查询、无法引用存储过程变量等

6.1.3 视图查询方式

视图查询语法和实体数据表完全通用,使用方式无差别:

sql

SELECT * FROM 视图名称 WHERE 筛选条件;


关键注意事项

当底层基础表新增字段后,已创建完成的旧视图不会自动同步新增字段,需要重新执行创建语句更新视图定义。

6.2 视图的增删改操作

6.2.1 通过视图操作数据(增/改/删)

仅可更新视图支持INSERT、UPDATE、DELETE操作,视图满足以下任意一种条件则无法更新:

1. 查询包含聚合函数:SUM、AVG、COUNT等
2. 使用分组、去重、合并关键字:GROUP BY、HAVING、DISTINCT、UNION
3. FROM子句关联两张及以上实体表

INSERT 插入规则

若视图配置 WITH CHECK OPTION ,插入数据必须满足视图筛选条件;
底层实体表存在非空字段,但该字段未在视图中展示时,无法执行插入操作。

UPDATE 更新规则

多表关联视图执行更新时,单次操作仅能修改其中一张表的字段,不允许同时修改多张关联表数据。

DELETE 删除规则

重要规定:关联多张数据表的视图,不支持执行DELETE删除语句。

6.2.2 修改已有视图定义

语法:

sql

ALTER VIEW 视图名称
AS SELECT 全新查询逻辑;


6.2.3 删除视图语句

sql

DROP VIEW [IF EXISTS] 视图1,视图2;


IF EXISTS 作用:当目标视图不存在时,执行语句不会抛出报错;支持一条语句批量删除多个视图。

章节核心考点汇总

1. 视图本质是虚拟表,无独立物理存储空间,数据实时取自基础表或其他视图
2. WITH CHECK OPTION 约束作用:管控插入、更新的数据,强制匹配视图筛选条件
3. 多表视图操作限制:UPDATE仅能单表修改,完全禁止DELETE删除操作
4. 底层基础表扩充字段后,原有视图不会自动同步,需重建视图生效

http://www.jsqmd.com/news/1132959/

相关文章:

  • 复杂监控场景多维步态分析平台 目标追踪布控 + 人员隐性心理态势识别白皮书
  • 空间智能重构:FancyZones如何重新定义Windows多任务工作流
  • IPXWrapper技术实现深度解析:Windows平台经典网络协议兼容性解决方案
  • Linux文件权限进阶:基于属性的加密(CP-ABE)实战技巧
  • Bilibili视频下载终极方案:免费解锁大会员4K和充电专属内容
  • 如何轻松下载B站大会员4K视频和充电专属内容?
  • 2026年苍蓝前线礼包码解析与海战资源快速提升战力体验
  • 基于libhv与JWT的HTTP认证中间件实战指南
  • 一篇讲透AI Agent 使用方法
  • YOLO26的DFL移除与NMS-Free双头设计:源码级解读端到端推理的底层实现
  • 微信小程序API安全实战:从鉴权缺失到注入漏洞的防御指南
  • 基于UIAutomation的Windows微信自动化:wxauto技术深度解析与实践指南
  • 绘图效率提升百倍!AutoFlow 智能流程图Agent 完整开发教程
  • 终极Lua反编译指南:用unluac轻松恢复加密字节码源码
  • Nigate:重新定义macOS NTFS读写体验的架构革命
  • 深度解析开源英汉词典数据库:企业级集成与性能优化实战指南
  • 一台车日清扫约 24000㎡?洁卫森为什么正在被园区、工厂、物业重点关注
  • Flutter App逆向初探:Dart编译产物的分析思路
  • 信管毕设本科生选题大全
  • Keras工业级CNN实战:从数据加载到部署的12个关键决策
  • 解放双手:如何用Java自动化引擎让炉石传说每日任务效率提升300%?
  • Azure Local离线模式Azure Policy(系列篇十五)
  • PCB表面处理工艺对比:HASL、ENIG、OSP等5种方案的焊接性与成本分析
  • [ACTF2020 新生赛]Exec 思路及解法
  • Spring JDBC Ultra:凭什么敢说自己是 MyBatis 终结者?
  • 抖音无水印视频下载终极指南:5分钟快速上手免费工具
  • 如何快速成为斗地主高手?DouZero AI助手让你的胜率轻松翻倍!
  • d3d8to9终极指南:让经典Direct3D 8游戏在现代Windows上完美运行
  • 《HarmonyOS技术精讲-Media Library Kit》之最佳实践与常见问题
  • 如何在算力云上部署Qwen/Qwen3-8B