Postgraduate hvor findes forespørgsel

Postgraduate: brug hvor findes klausul

når en hvilken som helst forespørgsel bruges i en anden forespørgsel, kaldes den en underforespørgsel. Den komplicerede forespørgsel kan let skrives ved at opdele en stor forespørgsel i flere underforespørgsler. Eksisterer klausul bruges med en underforespørgsel i en KVL-erklæring. Outputtet af eksisterer afhænger af antallet af poster, der returneres af underforespørgslen, men afhænger ikke af posternes værdier. Resultatet af eksisterer vil være sandt, hvis den tilknyttede underforespørgsel returnerer mindst en række. Hvordan du kan bruge eksisterer og ikke eksisterer klausul i vælg, Indsæt, Opdater og slet udsagn vises i denne vejledning ved hjælp af forskellige eksempler.

eksisterer Klausul syntaks:

vælg col1, col2, col3…..
fra tabel_name1
hvor findes( vælg 1
fra
tabel_name2
hvor col1 = tabel_name1.col1);

Opret tre tabeller med navnet firma, elementer og kunder, og indsæt nogle data. Kør følgende udvælgelsesforespørgsel for at få vist indholdet af disse tabeller.

vælg * fra virksomhed;
vælg * fra varer;
vælg * fra kunder;

eksempel-1: brug af eksisterende klausul i UDVÆLGELSESFORESPØRGSEL

(A) findes

følgende forespørgsel henter poster fra elementtabellen baseret på firmatabellen. Underforespørgslen søger i alle poster fra firmatabellen, hvor firmatid for firmatabellen er lig med firmatid for elementtabellen, og feltet Værdi for telefon ikke er tomt. Der er en post i selskabstabellen, der ikke har telefonnummer, og denne post vil blive udeladt fra output.

vælg vare_id, navn, mængde
fra varer
hvor findes (vælg 1
fra firma
hvor varer.company_id = selskab.company_id og company.telefon<>”);

produktion:

registreringen af LG har ingen telefonindtastning i selskabstabellen. Så det vises ikke i output.

(b) ikke eksisterer

ikke eksisterer klausul er modsat af eksisterer klausul. Følgende forespørgsel henter disse poster fra elementtabellen, når underforespørgslen returnerer FALSK.

vælg vare_id, navn, mængde
fra varer
hvor ikke findes (vælg 1
fra firma
hvor varer.company_id = selskab.company_id og company.netsted_url er NULL);

Output:

der er ingen post i selskabstabellen, hvor hjemmeside_url er NULL. Så output af underforespørgsel er falsk for alle poster, og alle poster i tabellen elementer hentes.

eksempel-2: Brug af eksisterende klausul i Indsæt forespørgsel

i henhold til følgende indsæt forespørgsel indsættes dataene i elementtabellen, når company_id for både firma-og kundetabeller er ens.

indsæt i emner
(company_id)
vælg company_id
fra kunder
hvor findes (vælg 1
fra virksomhed,kunder
hvor kunder.company_id = selskab.company_id);

Output:

der er tre poster for company_id i kunder tabel med værdier er 1 og 2. Så underforespørgslen vender tilbage til tre gange, og tre poster indsættes.

Kør udvælgelsesforespørgslen for at kontrollere indholdet af tabellen elementer.

eksempel-3: Brug af eksisterende klausul i OPDATERINGSFORESPØRGSEL

følgende forespørgsel opdaterer tabellen poster over elementer, hvor company_id er 1, og underforespørgslen Returnerer SAND.

Opdater emner
SET name= ‘Nokia’
hvor company_id=1 og eksisterer (vælg 1
fra emner
hvor name= ‘not Assign’);

Output:

her vil underforespørgslen returnere true for tre gange, og company_id er 1 For tre poster. Tre poster opdateres efter udførelse af opdateringsforespørgslen.

Kør udvælgelsesforespørgslen for at kontrollere indholdet af tabellen elementer.

eksempel-4: Brug af eksisterer-klausul i Slet forespørgsel

følgende forespørgsel sletter de poster over elementer, hvor company_id er 1, og underforespørgslen Returnerer SAND.

Slet fra varer
hvor company_id=1 og eksisterer (vælg 1
fra varer
hvor name= ‘not Assign’);

Output:

der er tre poster med værdi 1 af company_id og en post har navn værdi ‘ikke tildele’. Så betingelsen vil gælde for tre gange og slette tre poster fra elementer tabel.

Kør udvælgelsesforespørgslen for at kontrollere indholdet af tabellen elementer.

håber, du har fået en klar ide om at bruge eksisterer klausul i spørgsmål efter at have læst denne vejledning.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.