回顾 Section 2.6 中介绍的连接查询。假设你的应用程序需要频繁联合查询天气记录与城市坐标信息,但你不想在每次需要时都重新手写整段复杂的 SQL 连接。你可以针对该查询创建一个视图(view),为该复杂查询赋予一个具名标识,此后便可以像查询普通表一样对其进行检索:
CREATE VIEW myview AS
SELECT name, temp_lo, temp_hi, prcp, date, location
FROM weather, cities
WHERE city = name;
SELECT * FROM myview;
灵活运用视图是实现优秀 SQL 数据库架构设计的关键支柱之一。视图允许你将不断演进的数据表底层物理结构细节,封装在稳定一致的对外接口层之后。
在几乎所有允许使用普通表的地方都可以使用视图。在已有视图的基础上进一步嵌套构建新视图也是非常通用的实践。