PostgreSQLでのデータ操作
参照(SELECT)
SELECT文は、データベースからデータを取得するために使用されます。最も基本的な形では、特定のテーブルからすべてのデータを取得することができます。
例:
SELECT * FROM employees;
このSQLは、employees
というテーブルからすべての列と行を取得します。
特定のカラムだけを選択することもできます。例えば、employees
テーブルから名前と年齢だけを取得したい場合は次のように書きます。
例:
SELECT name, age FROM employees;
これにより、employees
テーブルの中でname
とage
カラムのみが返されます。
さらに、条件を指定して絞り込むこともできます。WHERE
句を使って、特定の条件に一致する行だけを取得することができます。
例:
SELECT name, age FROM employees WHERE age > 30;
このSQLは、年齢が30歳より大きい従業員の名前と年齢を返します。
挿入(INSERT)
INSERT文は、テーブルに新しいデータを追加するために使用されます。
例:
INSERT INTO employees (name, age) VALUES ('John Doe', 28);
このSQLは、employees
テーブルに新しい行を挿入します。名前が「John Doe」、年齢が28歳の従業員を追加します。
複数の行を一度に挿入することも可能です。
例:
INSERT INTO employees (name, age) VALUES ('Alice', 34), ('Bob', 45);
このSQLは、employees
テーブルに2人の従業員を同時に追加します。
更新(UPDATE)
UPDATE文は、テーブル内の既存のデータを更新するために使用されます。
例:
UPDATE employees SET age = 29 WHERE name = 'John Doe';
このSQLは、名前が「John Doe」の従業員の年齢を29歳に更新します。
複数のカラムを一度に更新することもできます。
例:
UPDATE employees SET age = 30, name = 'Jane Doe' WHERE name = 'John Doe';
これにより、「John Doe」という名前の従業員の名前を「Jane Doe」に、年齢を30歳に更新します。
注意点として、WHERE
句を忘れると、すべての行が更新されてしまうので慎重に使用してください。
削除(DELETE)
DELETE文は、テーブルからデータを削除するために使用されます。
例:
DELETE FROM employees WHERE name = 'John Doe';
このSQLは、名前が「John Doe」の従業員をemployees
テーブルから削除します。
WHERE句を使わずにDELETE文を実行すると、テーブル内のすべてのデータが削除されてしまうので注意が必要です。
例:
DELETE FROM employees;
このSQLは、employees
テーブル内のすべての行を削除します。
あれば更新・なければ挿入(UPSERT)
UPSERTは、指定したデータがすでに存在する場合には更新し、存在しない場合には新しいデータを挿入する操作です。PostgreSQLでは、INSERT ... ON CONFLICT
構文を使用して実現します。
例:
INSERT INTO employees (name, age) VALUES ('John Doe', 28) ON CONFLICT (name) DO UPDATE SET age = 29;
このSQLは、名前が「John Doe」の従業員がすでに存在する場合、その従業員の年齢を29歳に更新します。存在しない場合は新しく挿入されます。
指定した列(この場合はname
)が重複した場合に実行される処理をDO UPDATE
で指定します。
例:
INSERT INTO employees (name, age) VALUES ('Alice', 34) ON CONFLICT (name) DO NOTHING;
これは、名前が「Alice」の従業員がすでに存在する場合は何もしません。