„PostgreSQL“ egzistuoja su pavyzdžiais

Turinys:

Anonim

Kas yra „PostgreSQL“?

Operatorius „EXISTS“ tikrina, ar antrinėje užklausoje yra eilučių. Tai reiškia, kad operatorius naudojamas kartu su antrine užklausa. Teigiama, kad „Exists“ operatorius buvo įvykdytas, kai antrinėje užklausoje randama bent viena eilutė. Šią operaciją galite naudoti kartu su SELECT, UPDATE, INSERT ir DELETE sakiniais.

Šioje „PostgreSQL“ pamokoje sužinosite:

  • Sintaksė
  • Su SELECT pareiškimu
  • Su INSERT pareiškimu
  • Su ATNAUJINTI pareiškimą
  • Su DELETE pareiškimu
  • Su pgAdmin

Sintaksė

Čia yra teiginio „PostgreSQL EXISTS“ sintaksė:

WHERE EXISTS (subquery);

Pirmiau pateikta sintaksė rodo, kad operatorius EXISTS pateikia argumentą, kuris yra antrinė užklausa. Paklausa yra tiesiog SELECT sakinys, kuris turėtų prasidėti SELECT *, o ne stulpelių pavadinimų ar posakių sąraše.

Su SELECT pareiškimu

Pažiūrėkime, kaip naudoti „SELECT“ sakinį su „EXISTS“ operatoriumi. Mes turime šias lenteles:

Knyga:

Kaina:

Paleiskite šį teiginį:

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

Tai grąžina:

Pirmiau nurodyta komanda turėtų grąžinti visus lentelės „Book“ įrašus, kurių ID sutampa su visų užklausų įrašų ID. Buvo suderintas tik vienas ID. Taigi buvo grąžintas tik vienas įrašas.

Su INSERT pareiškimu

INSERT sakinyje galime naudoti operatorių EXISTS. Mes turime šias 3 lenteles:

Knyga:

Kaina:

Kaina2:

Tada galime paleisti šį teiginį:

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

Kainų lentelė dabar tokia:

Buvo suderinta eilutė, kurios ID buvo 5 lentelėje, pavadinta „Price2“. Tada šis įrašas buvo įterptas į kainų lentelę.

Su ATNAUJINTI pareiškimą

Operatorių EXISTS galime naudoti UPDATE sakinyje.

Paleiskite šią užklausą:

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

Atnaujiname kainos lentelės kainos stulpelį. Siekiame, kad daiktų, kurių ID yra tas pats, kainos būtų vienodos. Buvo suderinta tik viena eilutė, tai yra 5.

Tačiau kadangi kainos yra vienodos, tai yra, 205, atnaujinimas nebuvo atliktas. Jei būtų buvę skirtumų, būtų atliktas atnaujinimas.

Su DELETE pareiškimu

„PostgreSQL DELETE“ sakinyje galima naudoti operatorių EXISTS. Štai pavyzdys:

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

Kainų lentelė dabar tokia:

Eilutė, kurios ID yra 5, ištrinta.

Su pgAdmin

Dabar pažiūrėkime, kaip šiuos veiksmus galima atlikti naudojant „pgAdmin“.

Su SELECT pareiškimu

Norėdami tai padaryti per „pgAdmin“, atlikite tai:

1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.

2 žingsnis)

  1. Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
  2. Spustelėkite Demo.

3 žingsnis. Įveskite užklausą į užklausos redaktorių:

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

4 žingsnis) Spustelėkite mygtuką Vykdyti.

Tai turėtų grąžinti:

Su INSERT pareiškimu

Norėdami tai padaryti per „pgAdmin“, atlikite tai:

1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.

2 žingsnis)

  1. Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
  2. Spustelėkite Demo.

3 žingsnis. Įveskite užklausą į užklausos redaktorių:

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

4 žingsnis) Spustelėkite mygtuką Vykdyti.

Kainų lentelė dabar turėtų būti tokia:

Su ATNAUJINTI pareiškimą

Norėdami tai padaryti per „pgAdmin“, atlikite tai:

1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.

2 žingsnis)

  1. Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
  2. Spustelėkite Demo.

3 žingsnis. Įveskite užklausą į užklausos redaktorių:

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

4 žingsnis) Spustelėkite mygtuką Vykdyti.

Kainų lentelė dabar turėtų būti tokia:

Su DELETE pareiškimu

Norėdami tai padaryti per „pgAdmin“, atlikite tai:

1 veiksmas) Prisijunkite prie „pgAdmin“ paskyros.

2 žingsnis)

  1. Kairėje esančioje naršymo juostoje spustelėkite Duomenų bazės.
  2. Spustelėkite Demo.

3 žingsnis. Įveskite užklausą į užklausos redaktorių:

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

4 žingsnis) Spustelėkite mygtuką Vykdyti.

Kainų lentelė dabar turėtų būti tokia:

Santrauka

  • Operatorius „EXISTS“ tikrina, ar antrinėje užklausoje yra eilučių.
  • Jis naudojamas su antrine užklausa ir sakoma, kad jis įvykdytas, kai antrinė užklausa pateikia bent vieną eilutę.
  • Jis naudojamas kartu su SELECT, UPDATE, INSERT ir DELETE sakiniais.

Atsisiųskite šioje pamokoje naudojamą duomenų bazę