2.4. テーブルに行を挿入

以下のように、INSERT文を使用して、テーブルに行を挿入します。

INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');

全てのデータ型でどちらかといえば判り易い入力書式を使用していることに注意してください。 通常、単純な数値以外の定数は、この例のように、単一引用符(')で括らなければなりません。 date型で受け付けられるものは実際はかなり柔軟です。 しかし、このチュートリアルの段階では、曖昧さがない書式にこだわることにします。

point型では、入力として次のような座標の組み合わせが必要です。

INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');

ここまでの構文では、列の順番を覚えておく必要がありました。 以下に示す他の構文では、列のリストを明示的に与えることができます。

INSERT INTO weather (city, temp_lo, temp_hi, prcp, date)
    VALUES ('San Francisco', 43, 57, 0.0, '1994-11-29');

リスト内の列は好きな順番で指定できます。 また、一部の列を省略することもできます。 例えば、降水量が判らない場合は以下のようにすることができます。

INSERT INTO weather (date, city, temp_hi, temp_lo)
    VALUES ('1994-11-29', 'Hayward', 54, 37);

多くの開発者は、暗黙的な順番に依存するよりも、列のリストを明示的に指定する方を好んで使用します。

次節でもデータを使用しますので、上のコマンドを全て入力して下さい。

また、COPYを使用して大量のデータを平文テキストファイルからロードすることもできます。 COPYコマンドはINSERTよりも柔軟性はありませんが、この目的に特化していますので、通常、より高速になります。 以下に例を示します。

COPY weather FROM '/home/user/weather.txt';

ここで元となるファイルを表すファイル名は、クライアントマシンではなく、バックエンドサーバマシンで利用できるものでなければなりません。 バックエンドサーバがこのファイルを直接読み込むからです。 COPYにはCOPYコマンドについてのより詳しい説明があります。