跳到主要内容

虚拟视图

虚拟视图与表有什么区别?​

  • 存储: 不以物理形式实际存在;
  • 来源: 通过已有关系定义, 本质是一条被命名的查询;
  • 同步: 随底层关系的变化实时动态更新;
  • 关系模型中对应的概念: 关系的载体与数据类型;

怎样定义与查询视图?​

  • 定义: 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 §虚拟视图)