一、描述
视图基于SQL查询的结果集。CREATE VIEW创建了一个没有物理数据的虚拟表,因此其他操作,如ALTER VIEW和DROP VIEW,只能修改元数据。
二、语法
CREATE [ OR REPLACE ] [ [ GLOBAL ] TEMPORARY ] VIEW [ IF NOT EXISTS ] view_identifier
create_view_clauses AS query
三、参数
- OR REPLACE
如果已经存在相同名称的视图,它将被替换。 - [ GLOBAL ] TEMPORARY
临时视图是会话范围的,当会话结束时将被删除,因为它跳过了在底层元存储中持久化定义(如果有的话)。全局临时视图绑定到系统保留的临时数据库global_temp。 - IF NOT EXISTS
如果视图不存在,则创建该视图。 - view_identifier
指定视图名称,该名称可以选择性地使用数据库名称进行限定。
语法:[ database_name. ] view_name - create_view_clauses
这些子句是可选的,不区分顺序。它可以是以下格式。- [ ( column_name [ COMMENT column_comment ], … ) ]以指定列级注释。
- [ COMMENT view_comment ]指定视图级注释。
- [ TBLPROPERTIES ( property_name = property_value [ , … ] ) ]以添加元数据键值对。
- query 从基表或其他视图构造视图的SELECT语句。
四、例子
-- Create or replace view for `experienced_employee` with comments.
CREATE OR REPLACE VIEW experienced_employee
(ID COMMENT 'Unique identification number', Name)
COMMENT 'View for experienced employees'
AS SELECT id, name FROM all_employee
WHERE working_years > 5;
-- Create a global temporary view `subscribed_movies` if it does not exist.
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;
Spark SQL创建视图详解
283

被折叠的 条评论
为什么被折叠?



