.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "SELECT INTO" "" "2003-08-02" "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
.SS "入力"
.PP
.TP
\fBTEMPORARY\fR
.TP
\fBTEMP\fR
指定された場合、テーブルは一時テーブルとして作成されます。詳細は CREATE TABLE [\fBcreate_table\fR(l)]を見て下さい。
.TP
\fB\fInew_table\fB\fR
作成するテーブルの名前です (スキーマ修飾名でも可)。
.PP
.PP
その他の全ての入力は SELECT [\fBselect\fR(l)] で詳細が説明されています。
.SS "出力"
.PP
可能な出力メッセージの要約は CREATE TABLE [\fBcreate_table\fR(l)] と SELECT [\fBselect\fR(l)] を見て下さい。
.SH "説明"
.PP
\fBSELECT INTO\fR は新しいテーブルを作成し問い合わせによって計算されるデータを格納します。そのデータは通常の \fBSELECT\fR のようにクライアントには返されません。新しいテーブルの列は \fBSELECT\fRの出力列と関連するデータ型と名前を持ちます。
.sp
.RS
.B "Note:"
CREATE TABLE AS [\fBcreate_table_as\fR(l)]は機能的には \fBSELECT INTO\fR と同じです。\fBSELECT INTO\fR は標準ではないので、構文は\fBCREATE TABLE AS\fR をお勧めします。実際、この\fBSELECT INTO\fR という形式は \fBPL/pgSQL\fR や \fBecpg\fR(1) では有効ではありません。 なぜならそれらは INTO 句を異なって解釈するからです。
.RE
.sp
.SH "互換性"
.PP
SQL92 は、選択する値をホストプログラムのスカラー変数で選択する値を表示するために、新しいテーブルを作成するのではなく、\fBSELECT ... INTO\fR を使います。これは \fBPL/pgSQL\fR と \fBecpg\fR(1) で見つけられる使用法です。テーブル作成を表す \fBSELECT INTO\fR のPostgreSQL 使用は歴史的なものです。新しいコードではこの目的には \fBCREATE TABLE AS\fRを使うのが最善です。(\fBCREATE TABLE AS\fR も標準ではありませんが、これのほうが混乱を招く可能性が少ないです。
