CREATE [ TEMPORARY | TEMP ] TABLE table [ (column [, ...] ) ] AS select_clause
指定されている場合は、テーブルはこのセッション内でのみ 作られ、セッションの終りに自動的に削除されます。同じ名前を持つ 既存の永続テーブルは(このセッション内では)一時テーブルが存在 する間は見ることができません。一時テーブル上に作られるインデックス は自動的に一時的なものになります。
新しく作られるテーブル名です。このテーブルは既に 存在するものであってはなりません。しかし、既存の永続テーブル と同じ名前を持つ一時テーブルを作ることはできます。
列の名前です。カンマで区切られた列名のリストを使って複数の列名 を指定することができます。列名を指定しない場合は、SELECT 問い合わせの出力列名からとられます。
有効な問い合わせ文です。認められる構文の説明は SELECT を参照してください。
CREATE TABLE AS はテーブルを作成し SELECT コマンドによって算出されるデータ を格納します。テーブルの列は SELECT の 出力列と関連する名前とデータ型を持ちます(ただし SELECT 列名は列名を明示したリストを 渡すことで無効にすることができます)。
CREATE TABLE AS はビューの作成と似ている部分が ありますが、実際は全く異なります。CREATE TABLE AS は新しい テーブルを作成し、新しいテーブルの中身を初期化するために一度だけ SELECT を評価します。新しいテーブルはその次の 変化を SELECT のソーステーブルに反映しません。 反対に、ビューは与えられた SELECT を 問い合わせられるたびに再評価します。
このコマンドは SELECT INTO と同じ機能を持ちますが、SELECT ... INTO 構文の他の使用方法と混乱する可能性が少ないため、こちらを使用 する方が良いでしょう。