PostgreSQL EXISTUJE s příklady

Obsah:

Anonim

Co je PostgreSQL?

Operátor EXISTUJE, zda v poddotazu existují řádky. To znamená, že operátor se používá společně s poddotazem. Provozovatel Exists se říká, že 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.

V tomto výukovém programu PostgreSQL se naučíte následující:

  • Syntax
  • S příkazem SELECT
  • S výpisem INSERT
  • S výpisem UPDATE
  • S příkazem DELETE
  • S pgAdmin

Syntax

Zde je syntaxe příkazu PostgreSQL EXISTS:

WHERE EXISTS (subquery);

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

S příkazem SELECT

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

Rezervovat:

Cena:

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

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

Tím se vrátí následující:

Výše uvedený příkaz by měl vrátit všechny záznamy v tabulce Book, jejichž id odpovídá id všech záznamů podle poddotazu. Bylo přiřazeno pouze jedno ID. Proto byl vrácen pouze jeden záznam.

S výpisem INSERT

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

Rezervovat:

Cena:

Cena 2:

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

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

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

Řádek s ID 5 v tabulce s názvem Price2 byl uzavřen. Tento záznam byl poté vložen do tabulky cen.

S výpisem UPDATE

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

Spusťte následující dotaz:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

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

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

S příkazem DELETE

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

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

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

Řádek s ID 5 byl smazán.

S pgAdmin

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

S příkazem SELECT

Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:

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

Krok 2)

  1. Na navigačním panelu vlevo klikněte na Databáze.
  2. Klikněte na ukázku.

Krok 3) Zadejte dotaz do editoru dotazů:

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

Krok 4) Klikněte na tlačítko Provést.

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

S výpisem INSERT

Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:

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

Krok 2)

  1. Na navigačním panelu vlevo klikněte na Databáze.
  2. Klikněte na ukázku.

Krok 3) Zadejte dotaz do editoru dotazů:

INSERT INTO PriceSELECT id, priceFROM Price2WHERE EXISTS (SELECT idFROM BookWHERE Book.id = Price2.id);

Krok 4) Klikněte na tlačítko Provést.

Tabulka cen by nyní měla být následující:

S výpisem UPDATE

Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:

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

Krok 2)

  1. Na navigačním panelu vlevo klikněte na Databáze.
  2. Klikněte na ukázku.

Krok 3) Zadejte dotaz do editoru dotazů:

UPDATE PriceSET price = (SELECT priceFROM Price2WHERE Price2.id = Price.id)WHERE EXISTS (SELECT id, priceFROM Price2WHERE Price2.id = Price.id);

Krok 4) Klikněte na tlačítko Provést.

Tabulka cen by nyní měla být následující:

S příkazem DELETE

Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:

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

Krok 2)

  1. Na navigačním panelu vlevo klikněte na Databáze.
  2. Klikněte na ukázku.

Krok 3) Zadejte dotaz do editoru dotazů:

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

Krok 4) Klikněte na tlačítko Provést.

Tabulka cen by nyní měla být následující:

souhrn

  • Operátor EXISTUJE, zda v poddotazu existují řádky.
  • Používá se s poddotazem a říká se, že byly splněny, když poddotaz vrací 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 výukovém programu