什么是视图_mysql视图基础概念

12次阅读

视图是mysql中不存储数据、仅保存select语句定义的虚拟表,查询时动态执行语句获取基表数据,具有虚拟性、动态同步、无物理存储和命名唯一等特点。

什么是视图_mysql视图基础概念

视图是 MySQL 中一种虚拟的表,它本身不存储数据,而是保存一条 SELECT 查询语句的定义。每次查询视图时,数据库都会实时执行这条语句,从底层的一张或多张基础表中动态提取数据。

视图的核心特点

虚拟性:视图在磁盘上没有对应的数据文件,只存 SQL 语句(即“视图定义”),数据始终来自基表。
动态同步:基表数据增删改后,视图查询结果自动更新,无需手动刷新。
无物理存储:不占用额外空间,也不支持添加索引、触发器或默认值。
命名唯一:视图名在同一数据库中必须唯一,不能与表名冲突。

视图和普通表的区别

• 表是真实的数据容器,有物理行和列;视图只是“窗口”,看到的是查询结果的逻辑快照。
• 表可直接写入数据;视图虽支持部分增删改(需满足可更新条件),但日常主要用作查询简化与权限控制。
• 表结构变更直接影响所有操作;视图可通过重定义屏蔽基表变化,提升应用稳定性。

为什么需要视图

简化复杂查询:把多表 JOIN、聚合计算、条件过滤等封装成一个名字,后续只需 SELECT * FROM view_name
控制数据访问:例如只暴露员工姓名、部门,隐藏工资、身份证号等敏感字段。
统一数据口径:不同业务模块共用同一视图,避免各自写重复逻辑,保障结果一致性。
解耦逻辑与物理结构:当基表字段重命名或拆分时,只需调整视图定义,上层应用代码不用动。

基础操作示例

• 创建:CREATE VIEW emp_dept AS SELECT e.name, d.dept_name FROM employees e JOIN dept d ON e.dept_id = d.id;
• 查询:SELECT * FROM emp_dept;
• 删除:DROP VIEW emp_dept;
• 修改(替换):CREATE OR REPLACE VIEW emp_dept AS ...

text=ZqhQzanResources