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

搞懂视图!MySQL 数据表、视图核心差异实战总结

一、核心概念区分

1. 数据表(基表)

物理存储实体,会在磁盘上真实保存行数据、字段结构、索引;是数据库存储数据的底层载体。

2. 视图(虚表)

逻辑虚拟表,不存储真实数据,仅保存一条 SELECT 查询语句;访问视图时动态从基表计算数据。

2.特点:为用户集中数据,简化用户的数据查询和处理操作。

屏蔽数据库的复杂性。

简化用户权限的管理。

便于数据共享。

可以重新组织数据,以便输出到其他应用程序中使用。

二、创建语法对比

数据表 CREATE TABLE
CREATE TABLE book( 图书编号 CHAR(20) PRIMARY KEY, 书名 VARCHAR(50) NOT NULL, 图书类别 VARCHAR(20) );

无字段存储定义,仅封装查询逻辑;

OR REPLACE覆盖已有视图;WITH CHECK OPTION限制增改数据必须匹配 WHERE 条件;

创建仅保存查询文本,不占用数据存储空间。

视图 CREATE VIEW
CREATE OR REPLACE VIEW jsj_book AS SELECT * FROM book WHERE 图书类别='计算机' WITH CHECK OPTION;

语法格式

CREATE [OR REPLACE] VIEW 视图名 [(自定义列名列表)] AS SELECT 查询语句 [WITH [CASCADED | LOCAL] CHECK OPTION];
关键字详解
  1. OR REPLACE:如果同名视图已存在,直接覆盖重定义,避免视图已存在报错

  2. (列名列表):手动指定视图字段别名,别名数量必须和SELECT查询字段数量完全一致

  3. WITH CHECK OPTION:约束通过视图INSERT/UPDATE的数据,必须满足WHERE视图

    筛选条件

    • CASCADED(默认):递归校验所有嵌套依赖视图的 WHERE 条件

    • LOCAL:仅校验当前视图自身 WHERE 条件,不检查下层视图

创建视图硬性限制(SELECT 语句不能包含以下内容)
  1. FROM子查询、系统变量、预处理参数

  2. UNION、聚合函数、GROUP BYDISTINCTHAVING

  3. 多表关联 JOIN(多表视图会限制增删改)、ORDER BY特殊场景


三、修改语法格式

1. 修改数据表 ALTER TABLE

可增删字段、修改字段类型、增减约束、调整索引、修改表名:

-- 新增字段 ALTER TABLE book ADD 单价 DECIMAL(6,2); -- 修改字段类型 ALTER TABLE book MODIFY 书名 VARCHAR(100);
2. 修改视图 ALTER VIEW

仅能重写内部 SELECT 查询逻辑,无法修改字段约束、存储结构

ALTER VIEW jsj_book AS SELECT 图书编号,书名,单价 FROM book WHERE 图书类别='计算机';

四、删除语法对比

删除数据表 DROP TABLE
DROP VIEW IF EXISTS jsj_book;
  • 直接删除磁盘中全部数据、表结构、索引;

  • 若存在视图 / 外键依赖,删除会报错。

删除视图 DROP VIEW
DROP VIEW IF EXISTS jsj_book;

仅删除保存的查询语句,不会影响底层基表和真实数据

仅清除逻辑定义,磁盘数据完全保留。

五、增删改操作对比(核心区别)

数据表

1.天然支持INSERT/UPDATE/DELETE,不受额外限制,可直接修改磁盘原始数据

INSERT INTO book VALUES('TP001','MySQL教程','计算机'); UPDATE book SET 单价=45 WHERE 图书编号='TP001'; DELETE FROM book WHERE 图书类别='文学';

视图

单表、无聚合函数、无 GROUP BY、无多表连接的视图才可增删改;多表 / 聚合视图完全不可更新:

1.不可更新场景(聚合、多表、GROUP BY)

-- 该视图含GROUP BY,无法执行INSERT/UPDATE/DELETE CREATE VIEW sale_avg AS SELECT 书名,AVG(订购册数) FROM jsj_sell GROUP BY 书名;

2.限制:多表视图一次修改只能操作一张基表,不支持同时修改两张表字段;WITH CHECK OPTION强制校验新增 / 修改数据符合视图过滤条件。

六、查询操作对比

相同点

查询语法完全一致:SELECT 字段 FROM 表/视图 WHERE 条件

-- 查表 SELECT * FROM book; -- 查视图 SELECT * FROM jsj_book;

不同点

查表:直接读取磁盘存储数据,速度更快;

查视图:执行封装的 SELECT 语句,动态关联基表计算结果;基表新增字段不会同步到视图,基表删除字段会导致视图失效。

七、总结

  1. 数据表是数据存储载体,负责永久保存业务原始数据;视图是查询封装工具,用于简化查询、控制数据访问权限。

  2. 创建 / 修改 / 删除语法完全分离:表操作面向存储结构,视图操作面向查询逻辑。

  3. DML 操作差异最大:数据表自由增删改;视图仅简单单表视图支持更新,且存在条件校验约束。

  4. 视图不替代数据表,二者搭配使用:数据表存原始数据,视图对外提供简化、安全的数据访问接

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

相关文章:

  • 沭阳苗木基地怎么选?老炮儿跑场真心话
  • 4-20mA电流环接收器设计与INA196应用详解
  • 旋转向量,旋转矩阵,四元数,欧拉角之间的转换公式
  • 救命!UniApp上架App Store踩4.3a红线,我靠这招3天逆袭过审了[特殊字符]
  • 学习嵌入式Day3
  • Postfix 邮件服务器 3 大安全加固策略:SPF/DKIM/DMARC 配置与端口 25/465/587 辨析
  • 毕设 深度学习照片上色与动态化
  • 实战指南:如何用开源工具永久保存你的QQ空间数字记忆
  • 从粉丝项目到技术实践:构建自动化内容管理流水线
  • Linux top/ps 命令实战:5分钟定位CPU 100%与内存泄漏的进程
  • C++ STL 容器底层实现与迭代器失效规则总结
  • 告别Codex“裸奔”:10个必装Skills解锁AI编程助手真实力
  • 基于大数据爬虫+Hadoop用户偏好迁移的电影推荐系统
  • OpenNRE:清华开源的实体关系抽取工具包
  • SRS 4.0 HTTP回调实战:Spring Boot 2.3.7 实现7种事件鉴权与日志记录
  • sklearn 1.4+ PDP/ICE 图实战:3步代码从原理到特征筛选决策
  • 2026年6月好用的CNC加工服务商
  • eclipse ditto 学习笔记
  • AI替代人力是假象?微软派6000人驻场,Ford召回老工程师,人力价值凸显!
  • Fable 5复活引争议!“内心戏”暴露,AI意识大讨论升温!
  • 斯坦福CS231n计算机视觉课程:从理论到Kaggle实战的完整指南
  • 5分钟快速找回QQ空间全部历史说说的终极指南:GetQzonehistory完整教程
  • Windows系统下Aider完整安装、配置与实战使用教程
  • 地平线6 单机+联机版 全DLC车辆包 附存档免肝解锁
  • java封装好的线程池
  • 完美搞定微博,2026 批量下载微博内容/图片/视频,导出word和pdf,微博内容发布时间链接/点赞/评论/转发等数据导出excel
  • 【Qwt 7.0 系列】总体架构解析 —— 从单体到三库模块化的演进
  • Codex接入DeepSeek模型:从原理到工程化部署的完整指南
  • LangChain:139K Star 的 Agent 工程平台
  • WebTTY:用 WebRTC 直接共享终端,不用搭服务器