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:
Cena:
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í:
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:
Cena:
Cena 2:
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í:
Řá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);
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í:
Řá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
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
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
Mělo by vrátit následující:
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)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
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.
Tabulka cen by nyní měla vypadat takto:
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)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
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.
Tabulka cen by nyní měla vypadat takto:
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)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
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.
Tabulka cen by nyní měla vypadat takto:
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