CREATE TABLE AS

Name

CREATE TABLE AS -- 從一條查詢的結果中創建一個新表

Synopsis

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name [ (column_name [, ...] ) ]
    AS query

描述

CREATE TABLE AS 創建一個表並且用來自 SELECT 命令計算出來的數據填充該表。 該表的字段和 SELECT 輸出字段的名字及類型相關。 (只不過你可以通過明確地給出一個字段名字列表來覆蓋 SELECT 的字段名)。

CREATE TABLE AS 和創建視圖有點象, 不過兩者之間實在是有比較大差異:它創建一個新表並且只對 SELECT 計算一次來填充這個新表。 新表不能跟蹤 SELECT 的源表隨後做的變化。 相比之下,每次做查詢的時候,視圖都重新計算定義它的 SELECT 語句。

參數

TEMPORARYTEMP

如果聲明了這個選項,則該表作為臨時表創建。 參閱 CREATE TABLE 獲取細節。

table_name

要創建的表名(可以是用模式修飾的)。

column_name

字段的名稱。如果沒有提供字段名字,那麼就從查詢的輸出字段名中獲取。 如果表是一個 EXECUTE 命令創建的, 那麼當前就不能聲明字段名列表。

query

一個查詢語句(也就是一條 SELECT 命令或者一條運行準備好的 SELECT 命令的 EXECUTE 命令),請分別參考 SELECT 或者 EXECUTE 獲取可以使用的語法的描述。

注意

這條命令從功能上等效于 SELECT INTO, 但是我們更建議你用這個命令,因為它不太可能和 SELECT ... INTO 語法的其它方面的使用混淆。

兼容性

這條命令是根據 Oracle 的一個特性制作的。 在 SQL 標準中沒有功能相等的命令。不過, 把 CREATE TABLEINSERT ... SELECT 組合起來可以通過略微多一些的工作完成同樣的事情。

又見

CREATE TABLE, CREATE VIEW, SELECT, SELECT INTO