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 テーブルを検討してください。
価格
ID が 4 のレコードを削除しましょう。
DELETE FROM Price WHERE id = 4;
上記のコマンドは、ID が 4 のレコードを削除します。削除が成功したかどうかを確認してみましょう。
ID が 4 の行が削除されました。
XNUMX つの条件を含むクエリの削除
XNUMXμmの波長を持つ PostgreSQL DELETE ステートメントには 2 つの条件を指定できます。2 つの条件は AND 演算子を使用して結合する必要があります。次の表を使用します。
価格:
以下の例を考えてみましょう。
DELETE FROM Price WHERE id = 3Y AND price = 300;
上記のコマンドでは、ID が 3、価格が 300 の行を削除しています。これでテーブルをクエリできるようになります。
SELECT * FROM Price
これは以下を返します:
ID 3、価格 300 のレコードが削除されました。
PostgreSQL 存在条件を使用してクエリを削除する
EXISTS 条件を使用すると、DELETE をより複雑にすることができます。場合によっては、あるテーブルのレコードに基づいて別のテーブルのレコードを削除する必要があることがあります。
FROM 句では削除を実行するときに複数のテーブルからレコードをリストすることはできないことがわかりますが、EXISTS 句が非常に役立ちます。次の 2 つのテーブルがあります。
本:
価格:
次に、次のクエリを実行します。
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
上記のコマンドは、Book テーブルの ID と一致し、価格が 250 未満であるレコードが Price テーブルに存在する Book テーブルから削除します。
Book テーブルは次のようになります。
ID 1 のレコードが削除されました。
行を削除する方法 PostgreSQL pgAdminを使用する
行を削除する手順は次のとおりです。 PostgreSQL pgAdminを使用して:
XNUMXつの条件で
pgAdmin を使用して同じことを実行するには、次の手順を実行します。
ステップ 1) pgAdmin アカウントにログインします。
pgAdmin を開き、資格情報を使用してアカウントにログインします。
ステップ 2) デモ データベースを作成する
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ 3) クエリを入力します。
クエリ エディターに次のクエリを入力します。
DELETE FROM Price WHERE id = 4;
ステップ 4) クエリを実行する
「実行」ボタンをクリックします
ステップ 5) 行が削除されたかどうかを確認する
削除が成功したかどうかを確認してみましょう。
XNUMXつの条件付き
pgAdmin を使用して同じことを実行するには、次の手順を実行します。
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
DELETE FROM Price WHERE id = 3 AND price = 300;
ステップ4) 「実行」ボタンをクリックします。
ステップ5) 削除が成功したかどうかを確認してみましょう。
EXISTS 条件の使用
pgAdmin を使用して同じことを実行するには、次の手順を実行します。
ステップ1) pgAdmin アカウントにログインします。
ステップ2)
- 左側のナビゲーション バーで、[データベース] をクリックします。
- 「デモ」をクリックします。
ステップ3) クエリ エディターにクエリを入力します。
DELETE FROM Book WHERE EXISTS (SELECT 1 FROM Price WHERE Price.id = Book.id AND price < 250 );
ステップ4) 「実行」ボタンをクリックします。
ステップ5) 削除が成功したかどうかを確認してみましょう。
概要
- DELETE ステートメントは、テーブルから XNUMX つ以上のレコードを削除するために使用されます。
- テーブルから選択した行のみを削除するには、DELETE ステートメントと WHERE 句を組み合わせます。
- WHERE 句を指定せずに DELETE 句を使用すると、テーブルからすべてのレコードが削除されます。
- table-name パラメータを使用すると、レコードを削除するテーブルの名前を追加できます。
- DELETE ステートメントは、WHERE 句を使用して指定された XNUMX つの条件とともに使用できます。
- DELETE ステートメントは、WHERE 句で指定された 2 つの条件で使用することもできます。2 つの条件は、AND 演算子を使用して結合する必要があります。
- XNUMXμmの波長を持つ 存在する 条件は、別のテーブルのレコードに基づいてテーブルからレコードを削除するのに役立ちます。