CREATE TABLE SELECT
创建一个新表,并通过SELECT语句的结果填充该表。
语法格式
sql
createasstmt::=
CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP | GLOBAL TEMPORARY | GLOBAL TEMP] TABLE [IF NOT EXISTS] name_space [( ColId [,ColId]... )] AS selectstmt
参数说明
[TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP | GLOBAL TEMPORARY | GLOBAL TEMP]
:指定创建的表是临时表还是全局临时表。TEMPORARY
、TEMP
:创建临时表,这些表在会话结束时会被自动删除。LOCAL TEMPORARY
、LOCAL TEMP
:表的作用范围仅限于当前会话。GLOBAL TEMPORARY
、GLOBAL TEMP
:创建全局临时表。
name_space
:表名,可带模式名也可忽略模式名。( ColId [,ColId]... )
:列名,可选值,缺省时列名为查询中的列名。selectstmt
:查询语句,详情参考查询章节。
说明:
ColId
字段数必须和selectstmt
中的字段数保持一致。
示例
sql
SQL> CREATE TABLE copy_tab4(col1 INT,col2 VARCHAR);
SQL> INSERT INTO copy_tab4 VALUES(1,'VALUE1')(2,'VALUE2');
SQL> CREATE TABLE copy_tab5 AS SELECT * FROM copy_tab4;
SQL> SELECT * FROM copy_tab5;
COL1 | COL2 |
------------------------------------------------------------------------------
1 | VALUE1|
2 | VALUE2|