PostgreSQL Existuje s příkladem Select, Insert, Update & Delete

Co existuje v PostgreSQL?

Jedno PostgreSQL EXISTUJE operátor testuje, zda v poddotazu existuje řádek(y). To znamená, že operátor se používá společně s poddotazem. Říká se, že operátor Exists byl splněn, když je v poddotazu nalezen alespoň jeden řádek. Tuto operaci můžete použít spolu s příkazy SELECT, UPDATE, INSERT a DELETE.

Postgres existuje syntaxe dotazu

Zde je syntaxe pro PostgreSQL EXISTS prohlášení:

WHERE EXISTS (subquery);

Výše uvedená syntaxe ukazuje, že operátor EXISTS přijímá argument, což je poddotaz. Poddotaz je jednoduše a příkaz SELECT který by měl začínat SELECT * namísto seznamu názvů sloupců nebo výrazů.

PostgreSQL Existuje s příkazem SELECT

Podívejme se, jak použít příkaz SELECT s operátorem EXISTS. Máme následující tabulky:

Rezervovat:

PostgreSQL Existuje s příkazem SELECT

Cena:

PostgreSQL Existuje s příkazem SELECT

Spusťte následující příkaz:

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

To vrátí následující:

PostgreSQL Existuje s příkazem SELECT

Výše uvedený příkaz by měl vrátit všechny záznamy v tabulce Kniha, jejichž id se shoduje s id všech záznamů v poddotazu. Shodovalo se pouze jedno ID. Proto byl vrácen pouze jeden záznam.

PostgreSQL Existuje s příkazem INSERT

Můžeme použít operátor EXISTS v an příkaz INSERT. Máme následující 3 tabulky:

Rezervovat:

PostgreSQL Existuje s příkazem INSERT

Cena:

PostgreSQL Existuje s příkazem INSERT

Cena 2:

PostgreSQL Existuje s příkazem INSERT

Poté můžeme spustit následující příkaz:

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

Tabulka cen je nyní následující:

PostgreSQL Existuje s příkazem INSERT

Řádek s ID 5 v tabulce s názvem Cena2 byl spárován. Tento záznam byl následně vložen do tabulky Cena.

Postgres existuje s prohlášením UPDATE

V příkazu UPDATE můžeme použít operátor EXISTS.

Spusťte následující dotaz:

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 existuje s prohlášením UPDATE

Aktualizujeme sloupec ceny v tabulce Ceny. Naším cílem je, aby ceny položek sdílejících ID byly stejné. Shodoval se pouze jeden řádek, tedy 5.

Vzhledem k tomu, že ceny jsou stejné, tedy 205, nebyla provedena žádná aktualizace. Pokud by byl rozdíl, byla by provedena aktualizace.

Postgres existuje s příkazem DELETE

A PostgreSQL Příkaz DELETE může používat operátor EXISTS. Zde je příklad:

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

Tabulka cen je nyní následující:

Postgres existuje s příkazem DELETE

Řádek s ID 5 byl smazán.

PostgreSQL Existuje příkaz pomocí pgAdmin

Nyní se podívejme, jak lze tyto akce provádět pomocí pgAdmin:

Jak používat existující dotaz v PostgreSQL s příkazem SELECT pomocí pgAdmin

Níže jsou uvedeny kroky pro použití existujícího dotazu PostgreSQL s příkazem SELECT pomocí pgAdmin:

Krok 1) Přihlaste se ke svému účtu pgAdmin

Otevřete pgAdmin a přihlaste se ke svému účtu pomocí svých přihlašovacích údajů

Krok 2) Vytvořte demo databázi

  1. Na navigační liště vlevo klikněte na Databáze.
  2. Klepněte na tlačítko Demo.

PostgreSQL Existuje příkaz pomocí pgAdmin

Krok 3) Zadejte dotaz

Do editoru dotazů zadejte níže uvedený dotaz:

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

Krok 4) Proveďte dotaz

Klepněte na tlačítko Spustit

PostgreSQL Existuje příkaz pomocí pgAdmin

Mělo by vrátit následující:

PostgreSQL Existuje příkaz pomocí pgAdmin

S příkazem INSERT

Chcete-li provést totéž prostřednictvím pgAdmin, postupujte takto:

Krok 1) Přihlaste se ke svému účtu pgAdmin.

Krok 2)

  1. Na navigační liště vlevo klikněte na Databáze.
  2. Klepněte na tlačítko Demo.

Existuje prohlášení v PostgreSQL pomocí pgAdmin

Krok 3) Zadejte dotaz v editoru dotazů:

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

Krok 4) Klepněte na tlačítko Spustit.

Existuje prohlášení v PostgreSQL pomocí pgAdmin

Tabulka cen by nyní měla vypadat takto:

Existuje prohlášení v PostgreSQL pomocí pgAdmin

S prohlášením UPDATE

Chcete-li provést totéž prostřednictvím pgAdmin, postupujte takto:

Krok 1) Přihlaste se ke svému účtu pgAdmin.

Krok 2)

  1. Na navigační liště vlevo klikněte na Databáze.
  2. Klepněte na tlačítko Demo.

Existuje prohlášení v PostgreSQL pomocí pgAdmin

Krok 3) Zadejte dotaz v editoru dotazů:

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);

Krok 4) Klepněte na tlačítko Spustit.

PostgreSQL Existuje příkaz pomocí pgAdmin

Tabulka cen by nyní měla vypadat takto:

PostgreSQL Existuje příkaz pomocí pgAdmin

S příkazem DELETE

Chcete-li provést totéž prostřednictvím pgAdmin, postupujte takto:

Krok 1) Přihlaste se ke svému účtu pgAdmin.

Krok 2)

  1. Na navigační liště vlevo klikněte na Databáze.
  2. Klepněte na tlačítko Demo.

PostgreSQL Existuje příkaz pomocí pgAdmin

Krok 3) Zadejte dotaz v editoru dotazů:

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

Krok 4) Klepněte na tlačítko Spustit.

PostgreSQL Existuje příkaz pomocí pgAdmin

Tabulka cen by nyní měla vypadat takto:

PostgreSQL Existuje příkaz pomocí pgAdmin

Shrnutí

  • Operátor EXISTS testuje, zda v poddotazu existuje řádek(y).
  • Používá se s poddotazem a říká se, že byl splněn, když poddotaz vrátí alespoň jeden řádek.
  • Používá se společně s příkazy SELECT, UPDATE, INSERT a DELETE.

Stáhněte si databázi použitou v tomto kurzu