虚拟视图
虚拟视图与表有什么区别?
- 存储: 不以物理形式实际存在;
- 来源: 通过已有关系定义, 本质是一条被命名的查询;
- 同步: 随底层关系的变化实时动态更新;
- 关系模型中对应的概念: 关系的载体与数据类型;
怎样定义与查询视图?
- 定义:
CREATE VIEW <视图名> AS <视图定义>, 其中视图定义是 SQL 查询;
CREATE VIEW ParamountMovies AS
SELECT title, year
FROM Movies
WHERE studioName = 'Paramount';
- 查询: 与查询表完全相同;
SELECT title FROM ParamountMovies WHERE year > 1990;
- 重命名列: 在视图名后列出新列名;
CREATE VIEW Paramount(movieTitle, prodYear) AS
SELECT title, year
FROM Movies
WHERE studioName = 'Paramount';
怎样删除视图?
- 语法:
DROP VIEW <视图名>; - 影响: 删除 (不可更新的) 视图不会删除对应的表;
DROP VIEW ParamountMovies;
(source: 070-视图和索引.md §虚拟视图)