.\\" auto-generated by docbook2man-spec $Revision: 1.2 $
.TH "SELECT INTO" "" "2005-01-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をお勧めします。
更に、\fBCREATE TABLE AS\fRは\fBSELECT INTO\fRが提供する機能より上位機能を提供します。
.PP
PostgreSQL 8.0より前までは、 \fBSELECT INTO\fRで作成されるテーブルは常にOIDを含んでいました。
PostgreSQL 8.0では、\fBSELECT INTO\fRによって作成されるテーブルへにOIDを含めるかどうかはdefault_with_oids設定変数で制御されます。
現在、この変数のデフォルトは真ですが、将来のリリースのPostgreSQLでは偽になるかもしれません。
.SH "例"
.PP
filmsテーブルの最近の項目のみからなる、新しいfilms_recentテーブルを作成します。
.sp
.nf
SELECT * INTO films_recent FROM films WHERE date_prod >= '2002-01-01';
.sp
.fi
.SH "互換性"
.PP
標準SQLでは、\fBSELECT INTO\fRは新しいテーブルを作成するのではなく、 選択する値をホストプログラムのスカラ変数で選択する値を表示するために使用されます。
これは実際、\fBECPG\fR(the documentation参照)や\fBPL/pgSQL\fR (the documentation参照)で見られる使用方法です。
PostgreSQLにおける、テーブル作成を表す\fBSELECT INTO\fRの使用方法は歴史的なものです。
新しいコードではこの目的には\fBCREATE TABLE AS\fRを使うのが最善です。
.SH "関連項目"
CREATE TABLE AS [\fBcreate_table_as\fR(l)]
