.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "CREATE TABLE AS" "" "2004-06-19" "SQL - 言語" "SQL コマンド"
.SH NAME
CREATE TABLE AS \- 問い合わせの結果からの新しいテーブルの作成

.SH SYNOPSIS
.sp
.nf
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE \fItable_name\fR [ (\fIcolumn_name\fR [, ...] ) ]
    AS \fIquery\fR
.sp
.fi
.SH "説明"
.PP
\fBCREATE TABLE AS\fR はテーブルを作成し、\fBSELECT\fR コマンド、または、準備された\fBSELECT\fRコマンドを実行する\fBEXECUTE\fRコマンドによって算出されるデータを格納します。
テーブルの列は \fBSELECT\fR の出力列と関連する名前とデータ型を持ちます(ただし この列名は新しい列名を明示したリストを渡すことで無効にすることができます)。
.PP
\fBCREATE TABLE AS\fR はビューの作成と似ている部分がありますが、実際は全く異なります。
\fBCREATE TABLE AS\fR は新しいテーブルを作成し、新しいテーブルの中身を初期化するために一度だけその問い合わせを評価します。
それ以降行なわれた、問い合わせの元テーブルに対する変更は、新しいテーブルには反映されません。 
反対に、ビューは定義している \fBSELECT\fR 文を問い合わせられる度に再評価します。
.SH "パラメータ"
.TP
\fBTEMPORARY or TEMP\fR
指定された場合、テーブルは一時テーブルとして作成されます。
詳細は CREATE TABLE [\fBcreate_table\fR(l)]を参照して下さい。
.TP
\fB\fItable_name\fB\fR
作成するテーブルの名前です (スキーマ修飾名でも可)。
.TP
\fB\fIcolumn_name\fB\fR
新しいテーブルにおける列の名前です。
列名を指定しない場合は、問い合わせの出力列名からとられます。
現時点では、\fBEXECUTE\fR の実行によってテーブルが作成される場合、列名のリストは指定されません。
.TP
\fB\fIquery\fB\fR
問い合わせ文(つまり、\fBSELECT\fR コマンド、もしくは、準備された \fBSELECT\fR コマンドを実行する \fBEXECUTE\fRコマンド)です。
認められる構文の説明は、それぞれ、SELECT [\fBselect\fR(l)] もしくは EXECUTE [\fBexecute\fR(l)] を参照してください。
.SH "注釈"
.PP
このコマンドは、SELECT INTO [\fBselect_into\fR(l)] と同じ機能を持ちますが、\fBSELECT ... INTO\fR 構文の他の使用方法と混乱する可能性が少ないため、こちらを使用する方が良いでしょう。
.SH "互換性"
.PP
このコマンドは Oracle の機能を元に設計されました。
標準SQLには同等の機能を行なうコマンドはありません。 
しかし、CREATE TABLE と INSERT ... SELECT の多少工夫して組み合わせることで、同じことを行なうことができます。
.SH "関連項目"
CREATE TABLE [\fBcreate_table\fR(l)], CREATE VIEW [\fBcreate_view\fR(l)], EXECUTE [\fBexecute\fR(l)], SELECT [\fBselect\fR(l)], SELECT INTO [\fBselect_into\fR(l)]
