PostgreSQL INSERT INTO 文
PostgreSQL INSERT INTO 文は、テーブルに新しいレコードを挿入するために使用されます。
1行を挿入することも、複数行を同時に挿入することもできます。
構文
INSERT INTO 文の構文は以下のとおりです。
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
column1, column2,...columnN はテーブルの列名です。
value1, value2, value3,...valueN は列に対応する値です。
INSERT INTO 文を使用するとき、列の数はデータ値の数と同じで、順序も対応する必要があります。
テーブルのすべての列に値を挿入する場合、列を指定する必要はなく、挿入する値を指定するだけで済みます。
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
次の表は、挿入を実行した後に返される結果の説明です。
| 番号 | 出力情報 & 説明 |
|---|---|
| 1 | INSERT oid 1 1行のみ挿入し、対象テーブルにOIDがある場合の戻り情報です。oidは挿入された行に割り当てられたOIDです。 |
| 2 | INSERT 0 # 複数行を挿入したときに返される情報です。# は挿入された行数です。 |
例
サンプルdb データベースに COMPANY テーブルを作成します:
サンプルdb=# CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL, JOIN_DATE DATE );
COMPANY テーブルに次のデータを挿入します:
サンプルdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13'); INSERT 0 1
次のINSERT文は SALARY 列を無視します:
サンプルdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,JOIN_DATE) VALUES (2, 'Allen', 25, 'Texas', '2007-12-13'); INSERT 0 1
次のINSERT文は、JOIN_DATE 列に値を指定する代わりに、DEFAULT 句を使用してデフォルト値を設定します:
サンプルdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT ); INSERT 0 1
次の例では複数行を挿入します:
サンプルdb=# INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00, '2007-12-13' ), (5, 'David', 27, 'Texas', 85000.00, '2007-12-13'); INSERT 0 2
SELECT 文を使用してテーブルのデータを問い合わせます:
サンプルdb=# SELECT * FROM company; ID NAME AGE ADDRESS SALARY JOIN_DATE ---- ---------- ----- ---------- ------- -------- 1 Paul 32 California 20000.0 2001-07-13 2 Allen 25 Texas 2007-12-13 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 2007-12-13 5 David 27 Texas 85000.0 2007-12-13その他の拡張