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

.SH SYNOPSIS
.sp
.nf
SELECT [ ALL | DISTINCT [ ON ( \fIexpression\fR [, ...] ) ] ]
    * | \fIexpression\fR [ AS \fIoutput_name\fR ] [, ...]
    INTO [ TEMPORARY | TEMP ] [ TABLE ] \fInew_table\fR
    [ FROM \fIfrom_item\fR [, ...] ]
    [ WHERE \fIcondition\fR ]
    [ GROUP BY \fIexpression\fR [, ...] ]
    [ HAVING \fIcondition\fR [, ...] ]
    [ { UNION | INTERSECT | EXCEPT } [ ALL ] \fIselect\fR ]
    [ ORDER BY \fIexpression\fR [ ASC | DESC | USING \fIoperator\fR ] [, ...] ]
    [ LIMIT { \fIcount\fR | ALL } ]
    [ OFFSET \fIstart\fR ]
    [ FOR UPDATE [ OF \fItablename\fR [, ...] ] ]
.sp
.fi
.SH "説明"
.PP
\fBSELECT INTO\fR は新しいテーブルを作成し問い合わせによって計算されるデータを格納します。
そのデータは通常の \fBSELECT\fR のようにクライアントには返されません。
新しいテーブルの列は \fBSELECT\fRの出力列と関連するデータ型と名前を持ちます。
.SH "パラメータ"
.TP
\fBTEMPORARY or TEMP\fR
指定された場合、テーブルは一時テーブルとして作成されます。
詳細は CREATE TABLE [\fBcreate_table\fR(l)]を見て下さい。
.TP
\fB\fInew_table\fB\fR
作成するテーブルの名前です (スキーマ修飾名でも可)。
.PP
その他の全ての入力は SELECT [\fBselect\fR(l)] で詳細が説明されています。
.PP
.SH "注釈"
.PP
CREATE TABLE AS [\fBcreate_table_as\fR(l)]は機能的には \fBSELECT INTO\fR と同じです。
INTO句は異なる解釈がなされるため、\fBSELECT INTO\fR という形式は\fBECPG\fR や\fBPL/pgSQL\fRでは使用できません。そのため、構文としては\fBCREATE TABLE AS\fR をお勧めします。
.SH "互換性"
.PP
標準SQLでは、\fBSELECT ... INTO\fRは新しいテーブルを作成するのではなく、 選択する値をホストプログラムのスカラ変数で選択する値を表示するために使用されます。
これは実際、\fBECPG\fR([XRef to ECPG]参照)や\fBPL/pgSQL\fR ([XRef to PLPGSQL]参照)で見られる使用方法です。
PostgreSQL における、テーブル作成を表す \fBSELECT INTO\fR の使用方法は歴史的なものです。
新しいコードではこの目的には \fBCREATE TABLE AS\fRを使うのが最善です。(\fBCREATE TABLE AS\fR も標準ではありませんが、これのほうが混乱を招く可能性が少ないです。)
