本記事の内容
PostgreSQLのINSERT,UPDATE,DELETE文で使用する基本的な構文を紹介します。
SELECT文についてはこちら。
その他の構文については別記事にて紹介予定です。
※本記事はPostgreSQL 13を参考に記載しています。
※本記事はSQLを学んだことある人向けに、SQLの基本構文の早見表としてまとめています。構文の詳細は記載しておりませんのでご了承ください。
INSERT文
データを1行挿入する (カラム名指定なし)
[テーブル名]および[カラム〇の値]は適宜修正してご使用ください。
INSERT INTO [テーブル名] VALUES
('[カラム1の値]', '[カラム2の値]', '[カラム3の値]');
データを1行挿入する (カラム名指定あり)
INSERT INTO [テーブル名] ([カラム1], [カラム2], [カラム3]) VALUES
('[カラム1の値]', '[カラム2の値]', '[カラム3の値]');
カラム名およびカラムの値を指定していない列はDEFAULT値が設定されます。
※DEFAULT値はテーブル作成時にあらかじめ設定しておく必要があります。
データを複数行挿入する(値指定)
INSERT INTO [テーブル名] ([カラム1], [カラム2], [カラム3]) VALUES
('[カラム1の値1]', '[カラム2の値1]', '[カラム3の値1]'),
('[カラム1の値2]', '[カラム2の値2]', '[カラム3の値2]');
データを複数行挿入する(SELECT文使用)
SELECT句を使用して取得したデータをテーブルに挿入できます。
INSERT INTO [テーブル名1]
SELECT * FROM [テーブル名2] WHERE [条件];
UPDATE文
あるカラムの全行のデータを更新する
UPDATE [テーブル名] SET [カラム名] = '[値]';
条件を指定しない場合テーブル内の指定したカラムの全データが書き換わってしまうので注意が必要です。
特定の行のみ更新する方法は次の通りです。
あるカラムの特定行のデータを更新する
指定した条件に一致する行のデータを更新します。
UPDATE [テーブル名] SET [カラム名1] = '[値1]'
WHERE [カラム名2] = '[値2]';
複数カラムの特定行のデータを更新する
パターン1
UPDATE [テーブル名] SET [カラム名1] = '[値1]', [カラム名2] = '[値2]'
WHERE [カラム名3] = '[値3]';
パターン2
UPDATE [テーブル名] SET ([カラム名1], [カラム名2] ) = ('[値1]', '[値2]')
WHERE [カラム名3] = '[値3]';
複数カラムの特定行を他テーブルのデータにて更新する
パターン1
UPDATE [テーブル名1] SET ([テーブル名1カラム名1], [テーブル名1カラム名2]) =
(SELECT [テーブル名2カラム名1], [テーブル名2カラム名2] FROM [テーブル名2]
WHERE [テーブル名2].[テーブル名2カラム名3] = [テーブル名1].[テーブル名1カラム名3]);
パターン2
UPDATE [テーブル名1] SET [テーブル名1カラム名1] = [テーブル名2カラム名1],
[テーブル名1カラム名2] = [テーブル名2カラム名2]
FROM [テーブル名2]
WHERE [テーブル名2].[テーブル名2カラム名3] = [テーブル名1].[テーブル名1カラム名3];
DELETE文
テーブル内を空にする
テーブル内のすべてのデータを削除します。
DELETE FROM [テーブル名];
テーブル内の特定の行を削除する
DELETE FROM [テーブル名] WHERE [条件];