SQL 视图(View)本质上是一条被“保存起来”的 SQL 查询语句,对外看起来像一张表。它的实际作用非常广泛,下面用通俗 + 场景化的方式说明。
把复杂 SQL 封装成视图,业务人员或程序只需 SELECT * FROM 视图。
例子:
CREATE VIEW v_user_order AS
SELECT u.name, o.order_id, o.amount
FROM users u
JOIN orders o ON u.id = o.user_id;
使用:
SELECT * FROM v_user_order;
✅ 好处:
视图可以“只暴露需要的数据”。
例子:
CREATE VIEW v_employee_public AS
SELECT id, name, department
FROM employee;
✅ 好处:
多个系统都查“活跃用户”,如果每个人写一遍:
用视图统一:
CREATE VIEW v_active_user AS
SELECT * FROM users
WHERE last_login > NOW() - INTERVAL 30 DAY;
✅ 好处:
原表改名、拆分、合并时:
例子:
-- 原表 user_info 拆成 user_base + user_ext
CREATE VIEW user_info AS
SELECT b.*, e.phone
FROM user_base b
JOIN user_ext e ON b.id = e.user_id;
✅ 老系统毫无感知
视图相当于:
“给查询结果起个有意义的名字”
比一堆子查询、临时表更容易理解。
| 点 | 说明 |
|---|---|
| ❌ 不一定提升性能 | 视图只是 SQL,不会自动加速 |
| ❌ 某些视图不可更新 | 含 JOIN、聚合、DISTINCT 的视图通常不能 UPDATE |
| ❌ 嵌套视图会很难排查问题 | 视图套视图要谨慎 |
✅ 适合用视图:
❌ 不适合:
如果你愿意,我可以:
你更想看哪一个?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。