| 用途 | 查询封装与权限收敛 |
|---|---|
| 语法 | 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 更可控。