本章我们将讨论视图:创建、修改、删除视图。为高级篇的物化视图、递归视图等打好基础。
视图是一种存储在数据库中的,已命名的查询。它是一种逻辑表,通过 SELECT
语句表示一个或多个基础表的数据 。除了物化视图(将在高级篇进行讲解)外,视图不会在数据库中物理存储数据。
- 视图有助于简化查询
- 与表一样,可以为视图进行授权
- 基础表的数据发生变化,视图的数据也会自动进行变化
创建视图
创建视图的语法为:
CREATE VIEW 视图名 AS 查询;
示例:为示例数据库建立 customer_master
视图,用于简化获取完整客户数据的查询操作:
CREATE VIEW customer_master AS
SELECT cu.customer_id AS id,
cu.first_name || ' ' || cu.last_name AS name,
a.address,
a.postal_code AS "zip code",
a.phone,
city.city,
country.country,
CASE
WHEN cu.activebool THEN 'active'
ELSE ''
END AS notes,
cu.store_id AS sid
FROM customer cu
INNER JOIN address a USING (address_id)
INNER JOIN city USING (city_id)
INNER JOIN country USING (country_id);
创建完视图之后,可以简单的:
SELECT
*
FROM
customer_master;
修改视图
删除视图
DROP VIEW [IF EXISTS] 视图名;