PostgreSQL WHERE EXISTS Query

PostgreSQL: folosind clauza where EXISTS

când orice interogare SQL este utilizată în interiorul unei alte interogări SQL, atunci se numește subquery. Interogarea complicată poate fi scrisă cu ușurință prin împărțirea unei interogări mari în mai multe Subinterogări. Clauza EXISTS este utilizată cu o subinterogare într-o instrucțiune SQL. Ieșirea există depinde de numărul de înregistrări returnate de subinterogare, dar nu depinde de valorile înregistrărilor. Rezultatul EXISTS va fi adevărat dacă subinterogarea asociată returnează cel puțin un rând. Modul în care puteți utiliza clauza există și nu există în instrucțiunile select, insert, update și delete sunt afișate în acest tutorial folosind diferite exemple.

există sintaxa clauzei:

selectați col1, col2, col3…..
din table_name1
unde există( selectați 1
din
table_name2
unde col1 = table_name1.col1);

creați trei tabele numite companie, articole și clienți și introduceți câteva date. Executați următoarea interogare de selectare pentru a afișa conținutul acestor tabele.

selectați * din companie;
selectați * din articole;
selectați * de la clienți;

exemplu-1: utilizarea clauzei EXISTS în interogare de selectare

(a) EXISTS

următoarea interogare va prelua înregistrări din tabelul elemente pe baza tabelului companie. Subquery caută toate înregistrările din tabelul de companie în cazul în care company_id de masă companie este egal cu company_id de masă articole și valoarea câmpului de telefon nu este gol. Există o înregistrare în tabelul companiei care nu are număr de telefon și această înregistrare va fi omisă din ieșire.

selectați item_id, nume, cantitate
din items
unde există (selectați 1
din company
unde sunt items.company_id = companie.company_id și companie.telefon<>”);

ieșire:

înregistrarea LG nu are nicio intrare telefonică în tabelul companiei. Deci, nu este a apărut în ieșire.

(B) nu există

clauza nu există este opusă clauzei există. Următoarea interogare va prelua aceste înregistrări din tabelul elemente atunci când subinterogarea returnează false.

selectați item_id, nume, cantitate
din items
unde nu există (selectați 1
din company
unde items.company_id = companie.company_id și companie.website_url este NULL);

ieșire:

nu există nicio înregistrare în tabelul companiei unde website_url este NULL. Deci, ieșirea subinterogării este falsă pentru toate înregistrările și toate înregistrările tabelului de elemente sunt preluate.

exemplu-2: Utilizarea clauzei există în Inserare interogare

conform următoarei interogări de inserare, datele vor fi inserate în tabelul de elemente atunci când company_id atât al companiei, cât și al clienților sunt egale.

introduceți în elementele
(company_id)
selectați company_id
din clienți
unde există (selectați 1
din companie,clienți
unde clienți.company_id = companie.companie_d);

ieșire:

există trei intrări pentru company_id în tabelul clienți cu valori sunt 1 și 2. Deci, subinterogarea va reveni true de trei ori și vor fi inserate trei înregistrări.

rulați interogarea select pentru a verifica conținutul tabelului items.

exemplu-3: utilizarea clauzei EXISTS în interogarea de actualizare

următoarea interogare va actualiza tabelul înregistrări de elemente în care company_id este 1 și subinterogarea returnează true.

UPDATE items
SET name = ‘Nokia’
unde company_id = 1 și există (selectați 1
din items
unde name = ‘not Assign’);

ieșire:

aici, subinterogarea va reveni true de trei ori și company_id este 1 Pentru trei înregistrări. Trei înregistrări vor fi actualizate după executarea interogării de actualizare.

rulați interogarea select pentru a verifica conținutul tabelului items.

exemplu-4: Utilizarea clauzei există în interogarea ștergere

următoarea interogare va șterge acele înregistrări ale tabelului de elemente în care company_id este 1 și subinterogarea returnează true.

DELETE FROM items
WHERE company_id = 1 and EXISTS (SELECT 1
FROM items
WHERE name = ‘not Assign’);

ieșire:

există trei înregistrări cu valoarea 1 a company_id și o înregistrare are valoarea name ‘not Assign’. Deci, condiția va fi adevărată de trei ori și va șterge trei înregistrări din tabelul articole.

rulați interogarea select pentru a verifica conținutul tabelului items.

sper, aveți o idee clară despre utilizarea clauzei există în interogarea SQL după ce ați citit acest tutorial.

Lasă un răspuns

Adresa ta de email nu va fi publicată.