尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

搞懂视图!MySQL 数据表、视图核心差异实战总结
📅 发布时间:2026/7/5 3:05:18

一、核心概念区分

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 BY、DISTINCT、HAVING

  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. 视图不替代数据表,二者搭配使用:数据表存原始数据,视图对外提供简化、安全的数据访问接

相关新闻

  • Linux top/ps 命令实战:5分钟定位CPU 100%与内存泄漏的进程
  • 旋转向量,旋转矩阵,四元数,欧拉角之间的转换公式
  • C++ STL 容器底层实现与迭代器失效规则总结

最新新闻

  • 自己动手开发编译器(九)CPS风格的解析器组合子
  • PyTorch 1.13 BCEWithLogitsLoss 实战:3 个代码示例解析数值稳定性优势
  • DBeaver驱动包:一站式解决数据库连接配置难题
  • 成都智能靠谱之处大揭秘
  • 深度揭秘MapLibre:当开源地图遇上无限可能
  • 八股文:计算机网络

日新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号