PostgreSQL 選択した行を削除します
⚡ スマートサマリー
PostgreSQL DELETE文はテーブルから1つ以上の行を削除します。WHERE句と組み合わせると、条件に一致するレコードのみが対象となり、WHERE句を省略するとテーブル内のすべての行が削除されます。

クエリを削除 PostgreSQL
その DELETE文 in PostgreSQL テーブルから 1 つ以上のレコードを削除するために使用します。テーブルから選択した行のみを削除するには、 PostgreSQL DELETE文とWHERE句を組み合わせることができます。そうでない場合は、テーブル内のすべてのレコードが削除されます。
PostgreSQL 削除クエリ構文
DELETE文は、以下の構文を使用して定義できます。
[ WITH [ RECURSIVE ] with-query [, ...] ] DELETE FROM [ ONLY ] table-name [ * ] [ [ AS ] alias ] [ USING using-list ] [ WHERE condition(s) | WHERE CURRENT OF cursor-name] [ RETURNING * | output-expression [ [ AS ] output-name] [, ...] ]
技術パラメータ
以下のパラメータが利用可能です。
- クエリ付きWITH句を使用すると、DELETEクエリ内で1つ以上のサブクエリを名前で参照できます。
- テーブル名: レコードを削除するテーブルの名前。
- alias: 対象テーブル名の代わりとなるもの。
- 使用リスト他のテーブルの列をWHERE句で使用できるようにするテーブル式。
- 条件):オプション。レコードを削除するために満たさなければならない条件です。このセクションが指定されていない場合、テーブル名に一致するすべてのレコードが削除されます。
- カーソル名: WHERE CURRENT OF 条件で使用するカーソル。このカーソルによって最後に取得された行は削除されます。
- 出力式: 各行が削除された後に、DELETE ステートメントによって処理され返される式。
- 出力名: 返された列に使用される名前。
DELETE文は行全体を削除するため、列名を指定する必要はありません。
PostgreSQL 1 つの条件でクエリを削除する
DELETE文は、WHERE句で設定した単一の条件で使用できます。次のデータを持つPriceテーブルを考えてみましょう。
価格:
ID が 4 のレコードを削除しましょう。
DELETE FROM Price WHERE id = 4;
上記のコマンドは、IDが4のレコードを削除します。削除が成功したかどうかを確認してみましょう。
ID が 4 の行が削除されました。
XNUMX つの条件を含むクエリの削除
その PostgreSQL DELETE文は2つの条件を取ることもできます。2つの条件はAND演算子で結合する必要があります。以下の表を使用します。
価格:
以下の例を考えてみましょう。
DELETE FROM Price WHERE id = 3 AND price = 300;
上記のコマンドでは、IDが3で価格が300の行を削除しています。これでテーブルをクエリできます。
SELECT * FROM Price;
これにより、次が返されます。
ID 3、価格 300 のレコードが削除されました。
PostgreSQL EXISTS条件を使用したクエリの削除
存在する 条件によっては、削除処理をより複雑にすることができます。場合によっては、あるテーブルのレコードに基づいて、別のテーブルのレコードを削除する必要が生じることもあります。
FROM句では削除時に複数のテーブルからレコードを列挙できないため、EXISTS句が非常に役立ちます。ここでは、次の2つのテーブルを使用します。
本:
価格:
次に、次のクエリを実行します。
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
このコマンドは、Book テーブルから、Price テーブルに一致する ID を持ち、価格が 250 未満の行を削除します。
Book テーブルは次のようになります。
ID 1 のレコードが削除されました。
行を削除する方法 PostgreSQL pgAdminを使用する
以下の手順に従って、pgAdminインターフェースから同じ削除クエリを視覚的に実行することもできます。
ただし条件が一つある
ステップ1) pgAdminアカウントにログインしてください。pgAdminを開き、認証情報を使用してアカウントにログインしてください。
ステップ2) デモデータベースを作成します。
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターに次のクエリを入力します。
DELETE FROM Price WHERE id = 4;
ステップ4) 「実行」ボタンをクリックします。
ステップ5) 行が削除されたかどうか確認してみましょう。
2つの条件付き
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
DELETE FROM Price WHERE id = 3 AND price = 300;
ステップ4) 「実行」ボタンをクリックします。
ステップ5) 削除が成功したかどうかを確認してみましょう。
EXISTS 条件の使用
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
ステップ4) 「実行」ボタンをクリックします。
ステップ5) 削除が成功したかどうかを確認してみましょう。
















