基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
创建视图
更新时间:2023-07-18 17:25:58
您可以使用 CREATE VIEW 语句来创建视图。本文为您介绍如何创建普通视图。
语法
可以使用 CREATE VIEW 语句来创建视图。
create_view_stmt:
CREATE [OR REPLACE] [[NO] FORCE] VIEW view_name [(column_name_list)] AS select_stmt;
column_name_list:
column_name [, column_name ...]
参数解释
| 参数 | 描述 |
|---|---|
| OR REPLACE | 表示如果要创建的视图名称已存在,则使用新的定义重新创建视图。 |
| [NO] FORCE | 如果在创建视图时,不考虑该视图是否存在基表或存在引用的对象类型,以及视图所在 Schema 的所有者是否具有权限,请指定 FORCE。如果只在基表存在且视图所在 Schema 所有者具有权限时才创建视图,请指定 NOFORCE。NOFORCE 是默认设置。 |
| view_name | 视图名。指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 |
| select_stmt | 指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。 |
| column_name_list | 视图必须具有唯一的列名,不得有重复,就像基表那样。默认情况下,由 SELECT 语句检索的列名将用作视图列名。要想为视图列定义明确的名称,可使用可选的 column_name_list 子句,ID 之间使用逗号分隔。column_name_list 中的名称数目必须等于 SELECT语句检索的列数。SELECT 语句检索的列可以是对表列的简单引用。也可以是使用函数、常量值、运算符等的表达式。 |
示例
根据 t1 和 t2 两张表,创建两表关联查询视图 v 。
创建
t1表。obclient> CREATE TABLE t1 (id1 int,name varchar(256),sex varchar(256)); Query OK, 0 rows affected创建
t2表。obclient> CREATE TABLE t2 (id2 int,age int,c_date date); Query OK, 0 rows affected创建视图
v,可以得到t1表与t2表中ID相匹配的NAME、C_DATE、AGE、SEX信息。obclient> CREATE VIEW v AS SELECT id1 as id,name, c_date, age, sex FROM t1 a, t2 b WHERE a.id1 = b.id2; Query OK, 0 rows affected查看视图
v。obclient> DESC v; +--------+---------------+------+-----+---------+-------+ | FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA | +--------+---------------+------+-----+---------+-------+ | ID | NUMBER(38) | YES | NULL | NULL | NULL | | NAME | VARCHAR2(256) | YES | NULL | NULL | NULL | | C_DATE | DATE | YES | NULL | NULL | NULL | | AGE | NUMBER(38) | YES | NULL | NULL | NULL | | SEX | VARCHAR2(256) | YES | NULL | NULL | NULL | +--------+---------------+------+-----+---------+-------+ 5 rows in set