PostgreSQL EXISTUJE s príkladmi

Obsah:

Anonim

Čo je PostgreSQL?

Operátor EXISTUJE, či v poddotazu existujú riadky. To znamená, že operátor sa používa spolu s poddotazom. Operátor Exists je údajne splnený, keď sa v poddotazu nájde aspoň jeden riadok. Túto operáciu môžete použiť spolu s príkazmi SELECT, UPDATE, INSERT a DELETE.

V tomto výučbe PostgreSQL sa dozviete toto:

  • Syntax
  • S príkazom SELECT
  • S výpisom INSERT
  • S výpisom UPDATE
  • S príkazom DELETE
  • S pgAdmin

Syntax

Tu je syntax príkazu PostgreSQL EXISTUJE:

WHERE EXISTS (subquery);

Vyššie uvedená syntax ukazuje, že operátor EXISTUJE argument, ktorý je poddotazom. Poddotaz je jednoducho príkaz SELECT, ktorý by mal začínať výrazom SELECT * namiesto zoznamu názvov alebo výrazov stĺpcov.

S príkazom SELECT

Pozrime sa, ako používať príkaz SELECT s operátorom EXISTUJE. Máme nasledujúce tabuľky:

Kniha:

Cena:

Spustite nasledujúce vyhlásenie:

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

Takto sa vráti toto:

Vyššie uvedený príkaz by mal vrátiť všetky záznamy v tabuľke Book, ktorých id sa zhoduje s id akýchkoľvek záznamov podľa poddotazu. Zhodilo sa iba jedno ID. Preto bol vrátený iba jeden záznam.

S výpisom INSERT

Operátor EXISTU môžeme použiť vo vyhlásení INSERT. Máme nasledujúce 3 tabuľky:

Kniha:

Cena:

Cena 2:

Potom môžeme spustiť nasledujúce vyhlásenie:

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

Cenová tabuľka je teraz nasledovná:

Riadok s id 5 v tabuľke s názvom Price2 bol zhodný. Tento záznam bol potom vložený do tabuľky cien.

S výpisom UPDATE

Operátor EXISTU môžeme použiť vo výpise UPDATE.

Spustite nasledujúci dotaz:

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

Aktualizujeme stĺpec ceny tabuľky cien. Naším cieľom je, aby ceny položiek zdieľajúcich ID boli rovnaké. Zhodil sa iba jeden riadok, to znamená 5.

Pretože sú však ceny rovnaké, teda 205, nedošlo k nijakej aktualizácii. Ak by nastal rozdiel, bola by vykonaná aktualizácia.

S príkazom DELETE

Príkaz PostgreSQL DELETE môže používať operátor EXISTUJE. Tu je príklad:

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

Cenová tabuľka je teraz nasledovná:

Riadok s id 5 bol odstránený.

S pgAdmin

Teraz sa pozrime, ako je možné tieto akcie vykonať pomocou pgAdmin.

S príkazom SELECT

To isté dosiahnete prostredníctvom pgAdmin:

Krok 1) Prihláste sa do svojho účtu pgAdmin.

Krok 2)

  1. Na navigačnom paneli vľavo kliknite na položku Databázy.
  2. Kliknite na ukážku.

Krok 3) Zadajte dopyt do editora dotazov:

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

Krok 4) Kliknite na tlačidlo Vykonať.

Mal by vrátiť nasledujúce:

S výpisom INSERT

To isté dosiahnete prostredníctvom pgAdmin:

Krok 1) Prihláste sa do svojho účtu pgAdmin.

Krok 2)

  1. Na navigačnom paneli vľavo kliknite na položku Databázy.
  2. Kliknite na ukážku.

Krok 3) Zadajte dopyt do editora dotazov:

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

Krok 4) Kliknite na tlačidlo Vykonať.

Cenová tabuľka by teraz mala byť nasledovná:

S výpisom UPDATE

To isté dosiahnete prostredníctvom pgAdmin:

Krok 1) Prihláste sa do svojho účtu pgAdmin.

Krok 2)

  1. Na navigačnom paneli vľavo kliknite na položku Databázy.
  2. Kliknite na ukážku.

Krok 3) Zadajte dopyt do editora dotazov:

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

Krok 4) Kliknite na tlačidlo Vykonať.

Cenová tabuľka by teraz mala byť nasledovná:

S príkazom DELETE

To isté dosiahnete prostredníctvom pgAdmin:

Krok 1) Prihláste sa do svojho účtu pgAdmin.

Krok 2)

  1. Na navigačnom paneli vľavo kliknite na položku Databázy.
  2. Kliknite na ukážku.

Krok 3) Zadajte dopyt do editora dotazov:

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

Krok 4) Kliknite na tlačidlo Vykonať.

Cenová tabuľka by teraz mala byť nasledovná:

Zhrnutie

  • Operátor EXISTUJE, či v poddotazu existujú riadky.
  • Používa sa s poddotazom a údajne sa splnilo, keď poddotaz vráti aspoň jeden riadok.
  • Používa sa spolu s príkazmi SELECT, UPDATE, INSERT a DELETE.

Stiahnite si databázu použitú v tomto výučbe