创建视图
描述
视图基于
SQL
查询的结果集。
CREATE VIEW
构造了一个没有物理数据的虚拟表,因此其他操作如
ALTER VIEW
和
DROP VIEW
仅仅改变元数据。
语法
CREATE [ OR REPLACE ] [ [ GLOBAL ] TEMPORARY ] VIEW [ IF NOT EXISTS ] view_identifier
create_view_clauses AS query
参数
-
或者替换
如果同名的视图已经存在,它将被替换。
-
[ 全局 ] 临时
临时视图是会话范围内的,在会话结束时将被删除,因为它跳过了在基础元存储中持久化定义(如果有的话)。全局临时视图与系统保留的临时数据库
global_temp
绑定。 -
如果不存在
如果视图不存在,则创建一个视图。
-
视图标识符
指定视图名称,可以选择性地与数据库名称进行限定。
语法:
[ 数据库名称. ] 视图名称
-
创建视图子句
这些子句是可选的,并且顺序不敏感。可以是以下格式。
-
[ ( 列名 [ 注释 列注释 ], ... ) ]
用于指定列级别的注释。 -
[ 注释 视图注释 ]
用于指定视图级别的注释。 -
[ 表属性 ( 属性名称 = 属性值 [ , ... ] ) ]
用于添加元数据键值对。
-
-
查询 一个 SELECT 语句,用于从基础表或其他视图构建视图。
示例
-- 创建或替换带注释的 `experienced_employee` 视图。
CREATE OR REPLACE VIEW experienced_employee
(ID COMMENT '唯一识别号', Name)
COMMENT '经验丰富员工的视图'
AS SELECT id, name FROM all_employee
WHERE working_years > 5;
-- 如果不存在则创建全局临时视图 `subscribed_movies`。
CREATE GLOBAL TEMPORARY VIEW IF NOT EXISTS subscribed_movies
AS SELECT mo.member_id, mb.full_name, mo.movie_title
FROM movies AS mo INNER JOIN members AS mb
ON mo.member_id = mb.id;