PostgreSQL クエリの削除 (選択から行を削除)

クエリを削除 PostgreSQL

XNUMXμmの波長を持つ ステートメントの削除 in PostgreSQL テーブルから 1 つ以上のレコードを削除するために使用されます。テーブルから選択した行を削除したい場合 PostgreSQL DELETE ステートメントを WHERE 句と組み合わせることができ、それ以外の場合はすべてのレコードが削除されます。

Postgres の削除クエリ構文

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 クエリで名前によって参照される XNUMX つ以上のサブクエリを参照できます。
  • テーブル名: レコードを削除するテーブルの名前。
  • alias: これはターゲットテーブルの名前の代替です。
  • using-list: 他のテーブルの列を WHERE 句で使用できるようにするテーブル式。
  • 条件): オプション。 これらは、レコードを削除するために満たさなければならない条件です。 このセクションが指定されていない場合、すべてのテーブル名のレコードが削除されます。
  • カーソル名: WHERE CURRENT OF 条件で使用されるカーソル。 このカーソルによって最後にフェッチされた行が削除されます。
  • 出力式: すべての行の削除後に DELETE ステートメントによって処理され返される式。
  • 出力名: 返された列に使用される名前。

DELETE ステートメントは行全体を削除するため、列名を指定する必要がないことに注意してください。

PostgreSQL 1 つの条件でクエリを削除する

DELETE ステートメントは、単一の条件で使用できます。条件は WHERE 句を使用して設定されます。次のデータを含む Price テーブルを検討してください。

価格

PostgreSQL 1 つの条件でクエリを削除する

ID が 4 のレコードを削除しましょう。

DELETE FROM Price
WHERE id = 4;

上記のコマンドは、ID が 4 のレコードを削除します。削除が成功したかどうかを確認してみましょう。

PostgreSQL 1 つの条件でクエリを削除する

ID が 4 の行が削除されました。

XNUMX つの条件を含むクエリの削除

XNUMXμmの波長を持つ PostgreSQL DELETE ステートメントには 2 つの条件を指定できます。2 つの条件は AND 演算子を使用して結合する必要があります。次の表を使用します。

価格:

PostgreSQL XNUMX つの条件を含むクエリの削除

以下の例を考えてみましょう。

DELETE FROM Price
WHERE id = 3Y
AND price = 300;

上記のコマンドでは、ID が 3、価格が 300 の行を削除しています。これでテーブルをクエリできるようになります。

SELECT * FROM Price

これは以下を返します:

PostgreSQL XNUMX つの条件を含むクエリの削除

ID 3、価格 300 のレコードが削除されました。

PostgreSQL 存在条件を使用してクエリを削除する

EXISTS 条件を使用すると、DELETE をより複雑にすることができます。場合によっては、あるテーブルのレコードに基づいて別のテーブルのレコードを削除する必要があることがあります。

FROM 句では削除を実行するときに複数のテーブルからレコードをリストすることはできないことがわかりますが、EXISTS 句が非常に役立ちます。次の 2 つのテーブルがあります。

本:

PostgreSQL 存在条件を使用してクエリを削除する

価格:

PostgreSQL 存在条件を使用してクエリを削除する

次に、次のクエリを実行します。

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

上記のコマンドは、Book テーブルの ID と一致し、価格が 250 未満であるレコードが Price テーブルに存在する Book テーブルから削除します。

Book テーブルは次のようになります。

PostgreSQL 存在条件を使用してクエリを削除する

ID 1 のレコードが削除されました。

行を削除する方法 PostgreSQL pgAdminを使用する

行を削除する手順は次のとおりです。 PostgreSQL pgAdminを使用して:

XNUMXつの条件で

pgAdmin を使用して同じことを実行するには、次の手順を実行します。

ステップ 1) pgAdmin アカウントにログインします。

pgAdmin を開き、資格情報を使用してアカウントにログインします。

ステップ 2) デモ データベースを作成する

  1. 左側のナビゲーション バーで、[データベース] をクリックします。
  2. 「デモ」をクリックします。

行を削除 PostgreSQL

ステップ 3) クエリを入力します。

クエリ エディターに次のクエリを入力します。

DELETE FROM Price
WHERE id = 4;

ステップ 4) クエリを実行する

「実行」ボタンをクリックします

行を削除 PostgreSQL

ステップ 5) 行が削除されたかどうかを確認する

削除が成功したかどうかを確認してみましょう。

行を削除 PostgreSQL

XNUMXつの条件付き

pgAdmin を使用して同じことを実行するには、次の手順を実行します。

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  1. 左側のナビゲーション バーで、[データベース] をクリックします。
  2. 「デモ」をクリックします。

行を削除 PostgreSQL

ステップ3) クエリ エディターにクエリを入力します。

DELETE FROM Price
WHERE id = 3
AND price = 300;

ステップ4) 「実行」ボタンをクリックします。

行を削除 PostgreSQL

ステップ5) 削除が成功したかどうかを確認してみましょう。

行を削除 PostgreSQL

EXISTS 条件の使用

pgAdmin を使用して同じことを実行するには、次の手順を実行します。

ステップ1) pgAdmin アカウントにログインします。

ステップ2)

  1. 左側のナビゲーション バーで、[データベース] をクリックします。
  2. 「デモ」をクリックします。

EXISTS 条件を使用して行を削除する

ステップ3) クエリ エディターにクエリを入力します。

DELETE FROM Book
WHERE EXISTS
  (SELECT 1
    FROM Price
    WHERE Price.id = Book.id
    AND price < 250 );

ステップ4) 「実行」ボタンをクリックします。

EXISTS 条件を使用して行を削除する

ステップ5) 削除が成功したかどうかを確認してみましょう。

EXISTS 条件を使用して行を削除する

概要

  • DELETE ステートメントは、テーブルから XNUMX つ以上のレコードを削除するために使用されます。
  • テーブルから選択した行のみを削除するには、DELETE ステートメントと WHERE 句を組み合わせます。
  • WHERE 句を指定せずに DELETE 句を使用すると、テーブルからすべてのレコードが削除されます。
  • table-name パラメータを使用すると、レコードを削除するテーブルの名前を追加できます。
  • DELETE ステートメントは、WHERE 句を使用して指定された XNUMX つの条件とともに使用できます。
  • DELETE ステートメントは、WHERE 句で指定された 2 つの条件で使用することもできます。2 つの条件は、AND 演算子を使用して結合する必要があります。
  • XNUMXμmの波長を持つ 存在する 条件は、別のテーブルのレコードに基づいてテーブルからレコードを削除するのに役立ちます。

このチュートリアルで使用するデータベースをダウンロードする