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

数据视图学习笔记

数据库数据视图章节学习笔记

一、视图的基本概念

1. 定义

视图(View)是数据库中一种虚拟表,是基于一个或多个基础表(也可基于其他视图)查询结果构建的逻辑数据表。

视图本身不存储真实数据,数据库中仅保存视图的定义(对应的查询SQL语句),所有数据均来源于底层的基础表。当用户查询视图时,数据库会动态执行视图绑定的查询语句,从基础表中实时获取数据。

2. 核心本质

- 物理层面:无独立存储,不占用磁盘数据空间,仅存储视图结构定义;
- 逻辑层面:和普通数据表使用方式一致,支持查询、有限制的增删改操作,可像实体表一样用于日常数据操作。

3. 视图与基础表的区别

对比维度 基础表(实体表) 视图(虚拟表) 数据存储 真实存储数据和表结构 仅存储结构定义,无真实数据
存储空间 占用物理磁盘空间 几乎不占用数据存储空间
数据更新 直接更新,永久生效 依赖底层表,更新视图本质是更新基础表
创建删除 结构删除则数据全部丢失 删除视图仅删除定义,不影响基础表数据
二、视图的核心特点与优缺点

1. 主要特点
1. 数据实时性:视图数据实时同步基础表,基础表数据修改后,视图查询结果自动更新;
2. 逻辑独立性:屏蔽底层表结构细节,简化用户数据操作;
3. 权限安全性:可限制用户仅查看、操作部分字段和数据,实现数据权限分级;
4. 操作便捷性:将复杂多表联查、聚合查询封装为视图,无需重复编写复杂SQL。

2. 优点
1. 简化复杂查询:将多表连接、条件筛选、分组统计等复杂SQL封装为视图,用户直接查询视图即可,大幅降低重复编码工作量;
2. 保障数据安全:针对不同用户开放不同视图,隐藏敏感字段(如身份证、薪资、密码)和核心业务数据,实现精细化数据权限管理;
3. 统一数据展示:固定查询逻辑,统一团队、系统的数据查询标准,避免多人编写SQL导致的查询结果不一致问题;
4. 降低耦合度:底层表结构小幅调整时,可通过修改视图定义适配,无需修改前端业务代码,提升系统可维护性。
3. 缺点
1. 性能损耗:视图无缓存机制,每次查询都要动态执行底层SQL,多层嵌套视图会大幅降低查询效率;
2. 更新局限性:复杂视图(多表查询、含聚合函数、分组、去重)不支持增删改操作,仅简单单表视图可更新;
3. 依赖底层表:视图完全依赖基础表,若底层表被删除、字段修改,视图会直接失效,产生报错。
三、视图的分类

根据查询逻辑和结构特性,视图主要分为两类,也是考试和实操高频考点:
1. 简单视图
- 基于单个基础表创建;
- 不包含聚合函数、GROUP BY分组、DISTINCT去重、连接查询;
- 支持增、删、改、查所有DML操作,数据可同步回写到底层基础表。
2. 复杂视图
- 基于多表连接查询或单表复杂查询创建;
- 包含聚合函数(SUM、COUNT、AVG等)、分组、排序、去重、子查询;
- 仅支持查询操作,不支持增删改数据。
四、视图的SQL操作(通用语法,适配MySQL、SQL Server)
1. 创建视图
2. 查询视图
视图查询语法和普通数据表完全一致,是最常用的视图操作:
4. 删除视图
删除视图仅删除视图的逻辑定义,不会删除底层基础表和数据:
五、视图的更新操作(重难点)

1. 可更新视图条件

只有同时满足以下条件的简单视图,才能执行INSERT、UPDATE、DELETE操作:

1. 基于单表创建,无多表连接;
2. 无聚合函数、GROUP BY、DISTINCT、UNION;
3. 无常量计算字段、子查询;
4. 视图包含基础表所有非空无默认值的字段(新增数据必备)。
2. 视图更新示例
3. 不可更新场景总结
1. 视图包含SUM、COUNT、MAX等聚合函数;
2. 使用GROUP BY分组、DISTINCT去重、ORDER BY排序(部分数据库限制);
3. 多表关联查询创建的视图;
4. 包含虚拟计算字段的视图。
六、视图的典型应用场景
1. 数据权限管控:管理员创建不同视图,普通员工仅可查看业务数据,无法查看核心机密字段;
2. 简化高频复杂查询:将月度统计、多表联查、报表查询等重复复杂SQL封装为视图,一键查询;
3. 系统迭代兼容:数据库底层表结构重构、字段调整后,通过视图适配旧系统查询逻辑,保证业务不中断;
4. 报表数据展示:为BI报表、后台统计页面定制专属视图,统一报表数据来源。

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

相关文章:

  • 支持Skill的国内最强AI视频生成工具是谁?Seedance 2.5 全球首发前完整拆解
  • 从零掌握Locust性能测试:Python代码化压测与分布式实战
  • 【OpenHarmony/HarmonyOs 】数学学习报告页:本地统计卡片、正确率与隐私友好学习画像
  • Snowflake OA亲测:两道题20分钟交卷,全靠提前刷过原题
  • FLOPs/MACs/MAdds 概念辨析:3个指标在模型评估中的实际差异与选择
  • 3步搞定FanControl:Windows风扇智能控制的终极指南
  • 终极Android投屏指南:用scrcpy免费实现电脑控制手机
  • Codex 使用额度不够怎么办?Credits、ChatGPT Pro 应该怎么选(2026)
  • YOLOv3 与点云映射:600张图像训练,实现多目标无序抓取 ROI 提取
  • 2026年建筑动画行业观察
  • LTI 系统因果性与稳定性:从 2 个示例到 5 种常见系统类型的判断法则
  • 为什么博容安可SOS功能仅限中国大陆?海外留学生选购防身警报器避坑指南
  • 深度剖析OnmyojiAutoScript:现代化阴阳师自动化框架技术架构演进
  • Matlab【无人机图像】基于联合响应和背景学习实现无人机视觉跟踪附代码
  • 2026最新2款AI编程工具平替之选深度实测
  • AIGC 安全治理的三道防线:输入、输出与运营闭环
  • 2026最新5款AI编程平替实测|适配vibe coding全迭代低成本权威对比
  • 百度网盘秒传脚本终极指南:彻底解决文件分享失效的完整方案
  • Apache多后缀解析漏洞:从原理到实战的Web安全攻防
  • WK2124 SPI扩展8串口实战:Linux驱动配置与双芯片中断共享方案
  • 国内EMBA偏向哪些行业?2026综合实力TOP5榜单评测
  • 【claude code实践】 如何让 Claude Code 理解你的项目结构
  • 数字图像处理 2.7 节:像素邻接与连通性辨析,4邻域/8邻域在OpenCV中的3种实现对比
  • Cadence SPB17.4 自定义标题栏实战:从零创建含Logo的10属性模板
  • Halcon 标定板像素当量标定:单图法 vs 多图法,3种场景精度对比实测
  • 【OpenHarmony/HarmonyOs 】每日学习目标系统:todayCount、连续学习与本地激励反馈
  • 终极指南:零成本将安卓设备改造为Armbian服务器系统
  • 官网别只在电脑上看好看:说说移动端这些容易翻车的地方
  • AI语音机器人好用吗?千创云呼凭什么让快递物流通知效率翻倍还省钱?
  • 百度网盘怎么免费满速下载?2026超详细保姆级教程,支持批量下载