首页/数据/数据库速查/视图 VIEW:创建、查询与安全边界
本包目录(495 条)
MySQL 基础与连接36 条
SQL 语法52 条
用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

视图 VIEW:创建、查询与安全边界

把常用查询封装为命名视图:简化复杂 SQL、限制列级可见性;视图不存数据(普通视图),查询时实时展开。

数据库速查数据更新于 2026-10-12
用途查询封装与权限收敛
语法CREATE [OR REPLACE] VIEW 名 AS SELECT …
注意合并式 vs 物化,8.0 无物化视图

创建与使用

创建与使用
CREATE OR REPLACE VIEW v_user_order_summary AS
SELECT u.id AS user_id, u.name, COUNT(o.id) AS order_cnt, IFNULL(SUM(o.amount),0) AS total
FROM users u LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.name;

SELECT * FROM v_user_order_summary WHERE total > 1000;
视图用于收敛权限很常见(只暴露部分列);但复杂视图嵌套可能生成低效计划,性能敏感处直接写 SQL 更可控。

易错点

  • 视图定义不锁底层表的改列,底层改列后视图可能报无效定义
  • 带 ORDER BY/GROUP BY 的视图不可更新(DML 会受限)

数据来源与参考

  • MySQL 8.0 Reference Manual: CREATE VIEW Statement

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌