MySQL视图学习完整博客笔记

📅 2026/7/5 3:25:42
MySQL视图学习完整博客笔记
一、基本概念1. 数据表真实物理表数据保存在硬盘占用存储空间是数据库存储数据的基本对象。2. 视图虚拟表没有实际数据只保存一条SELECT查询语句访问视图时临时从基表查询数据。二、创建语句对比1、创建数据表语法sqlCREATE TABLE student(id INT PRIMARY KEY,name VARCHAR(20),age INT);特点执行后在数据库生成物理文件写入初始数据后永久保存。2、创建视图语法sqlCREATE VIEW v_student ASSELECT id,name FROM student WHERE age18;特点只保存查询逻辑不产生新数据不占用存储。三、更新操作对比1、更新数据表sqlUPDATE student SET age19 WHERE id1;直接修改底层真实数据所有查询全部生效。2、更新视图sqlUPDATE v_student SET name张三 WHERE id1;- 单表、无聚合函数、无分组的简单视图支持更新- 多表联合、包含SUM、COUNT、GROUP BY的视图禁止更新- 修改视图本质等同于修改原始数据表。例题判断以下视图能否更新sqlCREATE VIEW v_count ASSELECT age,COUNT(*) num FROM student GROUP BY age;答案不能更新包含分组聚合。四、删除操作对比1、删除数据表sqlDROP TABLE student;整张表结构和全部数据永久删除依赖该表的视图全部失效。2、删除视图sqlDROP VIEW v_student;仅删除视图定义原始student表数据完整保留不受任何影响。五、配套练习题例题1基于student表创建视图只查询姓名和年龄。sqlCREATE VIEW v1 ASSELECT name,age FROM student;例题2删除上面创建的v1视图。sqlDROP VIEW IF EXISTS v1;例题3通过视图修改id为2的学生姓名。sqlUPDATE v_student SET name李四 WHERE id2;六、视图与数据表核心区别总结操作 数据表 视图存储形式 物理存储真实数据 仅存储查询语句无数据创建 分配存储空间 不分配存储空间更新 任意增删改操作 简单视图可更新复杂视图不可更新删除 数据和结构全部消失 只删除视图原表数据完好主要用途 长期存储业务数据 简化查询、隐藏字段、做权限隔离七、视图优点1. 简化复杂SQL查询重复查询只写一次2. 隐藏敏感字段对外只开放部分数据3. 保证数据安全限制用户只能访问视图指定内容。