PostgreSQL の選択、挿入、更新、削除の例が存在する

PostgreSQL には何が存在しますか?

また, PostgreSQL は存在します 演算子は、サブクエリに行が存在するかどうかをテストします。 これは、演算子がサブクエリと一緒に使用されることを意味します。 Exists 演算子は、サブクエリ内で少なくとも XNUMX つの行が見つかったときに満たされたと言われます。 この操作は、SELECT、UPDATE、INSERT、および DELETE ステートメントとともに使用できます。

Postgres が存在するクエリ構文

PostgreSQL EXISTS ステートメントの構文は次のとおりです。

WHERE EXISTS (subquery);

上記の構文は、EXISTS 演算子が引数 (サブクエリ) を受け取ることを示しています。 サブクエリは単に SELECTステートメント 列名や式のリストではなく、SELECT * で始まる必要があります。

PostgreSQL には SELECT ステートメントが存在します

EXISTS 演算子を使用して SELECT ステートメントを使用する方法を見てみましょう。 以下のものがありますwing テーブル:

本:

PostgreSQL には SELECT ステートメントが存在します

価格:

PostgreSQL には SELECT ステートメントが存在します

以下を実行してくださいwing ステートメント:

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

これは以下を返しますwing:

PostgreSQL には SELECT ステートメントが存在します

上記のコマンドは、ID がサブクエリによる任意のレコードの ID と一致する Book テーブル内のすべてのレコードを返す必要があります。 一致した ID は XNUMX つだけでした。 したがって、返されたレコードは XNUMX つだけです。

PostgreSQL には INSERT ステートメントが存在します

EXISTS 演算子を次のように使用できます。 INSERT ステートメント。 以下のものがありますwing 3 つのテーブル:

本:

PostgreSQL には INSERT ステートメントが存在します

価格:

PostgreSQL には INSERT ステートメントが存在します

価格2:

PostgreSQL には INSERT ステートメントが存在します

その後、次のコマンドを実行できますwing ステートメント:

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

価格表は次のようになりました。

PostgreSQL には INSERT ステートメントが存在します

Price5 という名前のテーブル内の ID が 2 の行が一致しました。 このレコードはその後、Price テーブルに挿入されました。

Postgres は UPDATE ステートメントで存在します

UPDATE ステートメントで EXISTS 演算子を使用できます。

以下を実行してくださいwing クエリ:

UPDATE Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

Postgres は UPDATE ステートメントで存在します

価格表の価格列を更新しています。 私たちの目的は、ID を共有するアイテムの価格を同じにすることです。 5 行、つまり XNUMX 行だけが一致しました。

ただし、価格は同じ 205 であるため、更新は行われませんでした。 違いがある場合は、更新が行われます。

Postgres には DELETE ステートメントが存在します

PostgreSQL の DELETE ステートメントでは EXISTS 演算子を使用できます。 以下に例を示します。

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

価格表は次のようになりました。

Postgres には DELETE ステートメントが存在します

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

pgAdmin を使用した PostgreSQL Exists ステートメント

ここで、pgAdmin を使用してこれらのアクションをどのように実行できるかを見てみましょう。

pgAdmin を使用して PostgreSQL で SELECT ステートメントで Exists クエリを使用する方法

Exists クエリを使用する手順は次のとおりです。 PostgreSQL pgAdmin を使用した SELECT ステートメント:

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

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

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

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

pgAdmin を使用した PostgreSQL Exists ステートメント

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

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

SELECT *
FROM Book
WHERE EXISTS (SELECT *
              FROM Price
              WHERE Book.id = Price.id);

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

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

pgAdmin を使用した PostgreSQL Exists ステートメント

それは以下を返すはずですwing:

pgAdmin を使用した PostgreSQL Exists ステートメント

INSERT文あり

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

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

ステップ2)

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

pgAdmin を使用した PostgreSQL の Exists ステートメント

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

INSERT INTO Price
SELECT id, price
FROM Price2
WHERE EXISTS (SELECT id
              FROM Book
              WHERE Book.id = Price2.id);

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

pgAdmin を使用した PostgreSQL の Exists ステートメント

価格表は次のようになります。

pgAdmin を使用した PostgreSQL の Exists ステートメント

UPDATE文あり

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

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

ステップ2)

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

pgAdmin を使用した PostgreSQL の Exists ステートメント

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

UPDATE Price
SET price = (SELECT price
              FROM Price2
              WHERE Price2.id = Price.id)
WHERE EXISTS (SELECT id, price
FROM Price2
WHERE Price2.id = Price.id);

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

pgAdmin を使用した PostgreSQL Exists ステートメント

価格表は次のようになります。

pgAdmin を使用した PostgreSQL Exists ステートメント

DELETE文あり

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

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

ステップ2)

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

pgAdmin を使用した PostgreSQL Exists ステートメント

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

DELETE FROM Price
WHERE EXISTS (SELECT *
              FROM Price2
              WHERE Price.id = Price2.id);

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

pgAdmin を使用した PostgreSQL Exists ステートメント

価格表は次のようになります。

pgAdmin を使用した PostgreSQL Exists ステートメント

まとめ

  • EXISTS 演算子は、サブクエリに行が存在するかどうかをテストします。
  • これはサブクエリとともに使用され、サブクエリが少なくとも XNUMX 行を返したときに満たされたと言われます。
  • これは、SELECT、UPDATE、INSERT、および DELETE ステートメントと一緒に使用されます。

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