PostgreSQL WHERE EXISTS Query

PostgreSQL: använda Var finns klausul

när någon SQL-fråga används i en annan SQL-fråga kallas den en subquery. Den komplicerade frågan kan skrivas enkelt genom att dela en stor fråga i flera underfrågor. EXISTS-klausul används med en underfråga i en SQL-sats. Utgången från EXISTS beror på antalet poster som returneras av underfrågan men beror inte på värdena för posterna. Resultatet av EXISTS kommer att vara sant om den associerade underfrågan returnerar minst en rad. Hur du kan använda existerar och inte existerar klausul i select, infoga, uppdatera och ta bort uttalanden visas i denna handledning med olika exempel.

existerar Klausulsyntax:

välj col1, col2, col3…..
från table_name1
där finns( välj 1
från
table_name2
där col1 = table_name1.col1);

skapa tre tabeller med namnet företag, objekt och kunder och infoga vissa data. Kör följande select-Fråga för att visa innehållet i dessa tabeller.

välj * från företag;
välj * från objekt;
välj * från kunder;

exempel-1: Använda EXISTS-klausulen i SELECT query

(a) EXISTS

följande fråga hämtar poster från objekttabellen baserat på företagstabellen. Underfrågan söker alla poster från företagstabellen där company_id av företagstabellen är lika med company_id av objekt tabell och värdet av telefonfältet är inte tomt. Det finns en post i företagstabellen som inte har telefonnummer och denna post kommer att utelämnas från utgången.

välj item_id, namn, kvantitet
från objekt
där finns (välj 1
från företag
där objekt.company_id = företag.company_id och företag.telefon<>”);

utgång:

rekordet för LG har ingen telefonpost i företagstabellen. Så det är inte dök upp i produktionen.

(b) inte existerar

inte existerar klausul är motsatsen till existerar klausul. Följande fråga hämtar dessa poster från tabellen objekt när underfrågan returnerar false.

välj item_id, namn, kvantitet
från objekt
där det inte finns (välj 1
från företag
där objekt.company_id = företag.company_id och företag.website_url är NULL);

utgång:

det finns ingen post i företagstabellen där website_url är NULL. Så utsignalen från subquery är falsk för alla poster och alla poster i tabellen objekt hämtas.

exempel-2: Använda exists-klausulen i Infoga fråga

enligt följande infoga fråga kommer data att infogas i tabellen objekt när company_id för både företag och kunder tabeller är lika.

infoga i objekt
(company_id)
välj company_id
från kunder
där finns (välj 1
från företag,kunder
där kunder.company_id = företag.företag_id);

utgång:

det finns tre poster för company_id i kundtabellen med värden är 1 och 2. Så subquery kommer att returnera sant för tre gånger och tre poster kommer att infogas.

kör select-frågan för att kontrollera innehållet i tabellen objekt.

exempel-3: Använda exists-klausulen i UPPDATERINGSFRÅGA

följande fråga uppdaterar tabellen poster för objekt där company_id är 1 och underfrågan returnerar true.

Uppdatera objekt
ange namn= ’Nokia’
där company_id=1 och existerar (välj 1
från objekt
där namn= ’inte tilldela’);

utgång:

här kommer subquery att returnera true för tre gånger och company_id är 1 för tre poster. Tre poster kommer att uppdateras efter att uppdateringsfrågan har körts.

kör select-frågan för att kontrollera innehållet i tabellen objekt.

exempel-4: Använda EXISTS-klausulen I DELETE query

följande fråga tar bort de poster av objekt tabell där company_id är 1 och subquery returnerar true.

ta bort från objekt
där company_id=1 och existerar (välj 1
från objekt
där name= ’inte tilldela’);

utgång:

det finns tre poster med värde 1 av company_id och en post har namnvärdet ’inte tilldela’. Så kommer villkoret sant för tre gånger och ta bort tre poster från objekt tabell.

kör select-frågan för att kontrollera innehållet i tabellen objekt.

hoppas, du har få en klar uppfattning om att använda existerar klausul i SQL-fråga efter att ha läst denna handledning.

Lämna ett svar

Din e-postadress kommer inte publiceras.