PostgreSQL EXISTĂ cu SELECT Operator (Exemplu)
⚡ Rezumat inteligent
PostgreSQL EXISTS este un operator boolean care testează dacă o subinterogare corelată returnează orice rând, permițând instrucțiunilor SELECT, INSERT, UPDATE și DELETE să filtreze eficient datele după prezența sau absența înregistrărilor corespondente.

Ce EXISTĂ în PostgreSQL?
PostgreSQL EXISTĂ Operatorul testează dacă există un rând (sau mai multe rânduri) într-o subinterogare. Aceasta înseamnă că operatorul este utilizat împreună cu o subinterogare. Se spune că operatorul EXISTS a fost îndeplinit atunci când se găsește cel puțin un rând în subinterogare. Puteți utiliza această operație împreună cu instrucțiunile SELECT, UPDATE, INSERT și DELETE.
PostgreSQL Sintaxa interogării EXISTS
Iată sintaxa pentru PostgreSQL Declarație EXISTS:
WHERE EXISTS (subquery);
Sintaxa de mai sus arată că operatorul EXISTS preia un argument, care este o subinterogare. Subinterogarea este pur și simplu a instrucțiunea SELECT care ar trebui să înceapă cu un SELECT * în loc de o listă de nume de coloane sau expresii.
PostgreSQL EXISTS cu instrucțiunea SELECT
Să vedem cum se utilizează o instrucțiune SELECT cu operatorul EXISTS. Avem următoarele tabele:
Carte:
Preț:
Rulați următoarea instrucțiune:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Aceasta returnează următoarele:
Comanda de mai sus ar trebui să returneze toate înregistrările din tabelul Book al căror id se potrivește cu id-ul oricăror înregistrări din subinterogare. Un singur ID a fost potrivit. Prin urmare, a fost returnată o singură înregistrare.
PostgreSQL EXISTS cu instrucțiunea INSERT
Putem folosi operatorul EXISTS într-un instrucțiunea INSERT. Avem următoarele 3 tabele:
Carte:
Preț:
Preț 2:
Apoi putem rula următoarea instrucțiune:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Tabelul de prețuri este acum după cum urmează:
Rândul cu id-ul 5 din tabelul numit Preț2 a fost potrivit. Această înregistrare a fost apoi inserată în tabelul de prețuri.
PostgreSQL EXISTS cu instrucțiunea UPDATE
Putem folosi operatorul EXISTS într-o instrucțiune UPDATE.
Rulați următoarea interogare:
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);
Actualizăm coloana de preț a tabelului de prețuri. Scopul nostru este ca prețurile articolelor care au un ID să fie aceleași. Doar un rând a fost potrivit, adică 5.
Cu toate acestea, deoarece prețurile sunt egale, adică 205, nu s-a făcut nicio actualizare. Dacă ar fi fost o diferență, ar fi fost făcută o actualizare.
PostgreSQL EXISTS cu instrucțiunea DELETE
A PostgreSQL Instrucțiunea DELETE poate folosi operatorul EXISTS. Iată un exemplu:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Tabelul de prețuri este acum după cum urmează:
Rândul cu ID-ul 5 a fost șters.
PostgreSQL Instrucțiunea EXISTS folosind pgAdmin
Dincolo de shell-ul SQL, aceleași interogări EXISTS pot fi executate vizual prin interfața pgAdmin. Acum să vedem cum pot fi efectuate aceste acțiuni folosind pgAdmin:
Cu instrucțiunea SELECT
Mai jos sunt pașii pentru utilizarea unei interogări EXISTS în PostgreSQL cu o instrucțiune SELECT folosind pgAdmin:
Pas 1) Conectați-vă la contul dvs. pgAdmin. Deschideți pgAdmin și conectați-vă la contul dvs. folosind datele de autentificare.
Pas 2) Creați o bază de date demonstrativă.
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea de mai jos în editorul de interogări:
SELECT * FROM Book WHERE EXISTS (SELECT * FROM Price WHERE Book.id = Price.id);
Pas 4) Faceți clic pe butonul Execute.
Ar trebui să returneze următoarele:
Cu instrucțiunea INSERT
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
INSERT INTO Price SELECT id, price FROM Price2 WHERE EXISTS (SELECT id FROM Book WHERE Book.id = Price2.id);
Pas 4) Faceți clic pe butonul Execute.
Tabelul de prețuri ar trebui să fie acum după cum urmează:
Cu Declarație UPDATE
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
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);
Pas 4) Faceți clic pe butonul Execute.
Tabelul de prețuri ar trebui să fie acum după cum urmează:
Cu instrucțiunea DELETE
Pentru a realiza același lucru prin pgAdmin, procedați astfel:
Pas 1) Conectați-vă la contul dvs. pgAdmin.
Pas 2)
- Din bara de navigare din stânga, faceți clic pe Baze de date.
- Faceți clic pe Demo.
Pas 3) Introduceți interogarea în editorul de interogări:
DELETE FROM Price WHERE EXISTS (SELECT * FROM Price2 WHERE Price.id = Price2.id);
Pas 4) Faceți clic pe butonul Execute.
Tabelul de prețuri ar trebui să fie acum după cum urmează:
Descărcați baza de date folosită în acest tutorial





















