SQL-underforespørsler

Siste oppdatering 26. februar 2020 08:07:42 (UTC / GMT +8 timer)

Hva er delspørring i SQL?

En delspørring er en SQL-spørring nestet i et større spørsmål.

  • Et underspørsmål kan forekomme i:
    • – En SELECT-klausul
    • – A FROM-klausul
    • – EN WHERE-klausul
  • Delspørringen kan nestes i en SELECT-, INSERT-, UPDATE- eller DELETE-setning eller i en annen delspørring.
  • Et delspørsmål blir vanligvis lagt til i WHERE-klausulen til en annen SQL SELECT-setning.
  • Du kan bruke sammenligningsoperatorene, for eksempel >, <, eller =. Sammenligningsoperatøren kan også være en operatør med flere rader, for eksempel IN, ALLE eller ALLE.
  • Et underspørsmål kalles også et indre spørsmål eller indre utvalg, mens utsagnet som inneholder et underspørsmål, også kalles en ytre spørring eller ytre valg.
  • Den indre spørringen utføres først før den overordnede spørringen, slik at resultatene av et indre spørsmål kan sendes til det ytre spørringen.

Du kan bruke en undersøking i en SELECT-, INSERT-, DELETE- eller UPDATE-setning for å utføre følgende oppgaver:

  • Sammenlign et uttrykk med resultatet av spørringen.
  • Bestem om et uttrykk er inkludert i resultatene av spørringen.
  • Sjekk om spørringen velger noen rader.

Syntaks:

  • Delspørringen (indre spørring) kjøres en gang før hovedspørringen (ytre spørring) kjøres.
  • Hovedforespørselen (ytre spørring) bruker resultatet av undersøket.

SQL-undersøkelser Eksempel:

I denne delen vil du lære kravene til bruk av delspørsmål. Vi har følgende to tabeller «student» og «merker» med felles felt «StudentID».



studentkarakterer

Nå ønsker vi å skrive et spørsmål for å identifisere alle studenter som får bedre karakter enn studenten som «StudentID er» V002 «, men vi kjenner ikke karakterene til» V002 «.
– For å løse problemet krever vi to spørsmål. Den ene spørringen returnerer merkene (lagret i Total_marks-feltet) til «V002», og en andre spørring identifiserer studentene som får bedre karakter enn resultatet av den første spørringen.

Første spørsmål:

Forespørselsresultat:

Resultatet av spørringen er 80.
-Bruk av resultatet av denne spørringen, her har vi skrevet en annen forespørsel for å identifisere studentene som får bedre poeng enn 80. Her er spørringen:

Andre spørsmål:

Forespørselsresultat:

Over to spørsmål identifiserte studenter som får t han er bedre enn studenten som «StudentID er» V002 «(Abhay).

Du kan kombinere de ovennevnte to spørsmålene ved å plassere den ene spørringen i den andre. Delspørringen (også kalt «indre spørring») er spørringen i parentes. Se følgende kode og søkeresultat:

SQL-kode:

Spørreresultat:

Bildemessig presentasjon av SQL-underforespørsel:

Underforespørsler: Generelle regler

En SELECT-setning med underspørsmål er nesten lik til SELECT-setningen, og den brukes til å starte et vanlig eller ytre spørsmål. Her er syntaksen til et underspørsmål:

Syntaks:

Delspørsmål: Retningslinjer

Det er noen retningslinjer du bør vurdere når du bruker delspørsmål:

  • Et underspørsmål må være plassert i parentes.
  • Et underspørsmål må plasseres på høyre side av sammenligningsoperatøren.
  • Underforespørsler kan ikke manipulere resultatene internt, derfor kan ORDER BY-leddet ikke legges til i et underspørsmål. Du kan bruke en ORDER BY-ledd i SELECT-setningen (ytre spørring) som vil være den siste setningen.
  • Bruk enkeltradoperatører med enkeltradsspørringer.
  • Hvis en undersøking (indre spørring) returnerer en nullverdi til den ytre spørringen, vil den ytre spørringen ikke returnere noen rader når du bruker visse sammenligningsoperatorer i en WHERE-setning.

Type undersøk

  • Enkeltraderspørring: Returnerer null eller en rad.
  • Flere radspørsmål: Returnerer en eller flere rader.
  • Flere kolonnedelspørsmål: Returnerer en eller flere kolonner.
  • Korrelerte underspørringer: Henvis til en eller flere kolonner i den ytre SQL-setningen. Delspørringen er kjent som et korrelert delspørsmål fordi delspørringen er relatert til den ytre SQL-setningen.
  • Nestede underspørsmål: Delspørsmål plasseres i et annet underspørsmål.

I neste økt har vi grundig diskutert emnene ovenfor. Bortsett fra ovennevnte underspørringstype, kan du bruke en underspørring i INSERT, UPDATE og DELETE-setningen. Her er en kort diskusjon:

Delspørringer med INSERT-setning

INSERT-setning kan brukes med delspørsmål.Her er syntaksen og et eksempel på underforespørsler som bruker INSERT-setningen.

Syntaks:

INSERT INTO table_name ) ]SELECT FROM table1 ;

Hvis vi vil sette inn disse ordrene fra » ordrer «-tabell som har forhåndsbeløpet 2000 eller 5000 til» nybestilling «-tabellen, kan følgende SQL brukes:

Eksempeltabell: ordrer

SQL-kode:

Utgang:

For å se flere detaljer av underspørsmål ved bruk av INSERT-setning, klikk her

Underforespørsler med UPDATE-setning

I en UPDATE-setning kan du angi en ny kolonneverdi som tilsvarer resultatet som returneres av en enkelt rad under spørring. Her er syntaksen og et eksempel på delspørsmål som bruker UPDATE-setningen.

Syntaks:

UPDATE table SET column_name = new_value(SELECT COLUMN_NAMEFROM TABLE_NAME) 

Hvis vi ønsker å oppdatere den ord_datoen i » neworder «tabell med» 15-JAN-10 «som har forskjellen på ord_antall og forhåndsbeløp er mindre enn minimum ord_antall av» ordrer «tabellen følgende SQL kan brukes:

Eksempel tabell: nybestilling

SQL-kode:

Utgang:

Klikk her for å se mer informasjon om underspørsmål ved hjelp av UPDATE-setningen.

Delspørringer med DELETE-setning

DELETE-setning kan brukes med delspørsmål. Her er syntaksen og et eksempel på delspørsmål som bruker DELETE-setningen.

Syntaks:

DELETE FROM TABLE_NAME(SELECT COLUMN_NAME FROM TABLE_NAME) 

Hvis vi vil slette de ordrene fra «neworder» -tabellen, som forhåndsbeløp er mindre enn maksimum forhåndsbeløp på » ordrer «-tabell, kan følgende SQL brukes:

Eksempeltabell: ny ordning

SQL-kode:

Utgang:

Hvis du vil se flere detaljer om underspørsmål ved hjelp av DELETE-setningen, klikker du her.

Hva neste gang?

  • SQL-undersøkelser – Presentasjon av lysbilder
  • Enkeltrekkeundersøk
  • Flere rad- og kolonneundersøk
  • Korrelerte underforespørsler ved hjelp av aliaser
  • Nestede underforespørsler

Merk: Utdataene fra nevnte SQL-setning vist her er tatt ved bruk av Oracle Database 10g Express Edition.

Øv SQL-øvelser

  • SQL-øvelser, øv, løsning
  • SQL Hent data fra tabeller
  • SQL-boolske og relasjonelle operatører
  • SQL jokertegn og spesielle operatører
  • SQL-samlet Funksjoner
  • SQL-formatering av spørringsutdata
  • SQL-spørring på flere tabeller
  • FILTERING og SORTERING på HR-database
  • SQL JOINS
    • SQL JOINS
    • SQL JOINS på HR-database
  • SQL-UNDERFØRINGER
    • SQL-UNDERFÖRVARINGER
    • SQL-UNDERHAV på HR-database
  • SQL Union
  • SQL View
  • SQL User Account Management
  • Filmdatabase
    • GRUNNLEGGENDE spørringer om filmdatabase
    • UNDERFATTING om filmdatabase
    • BLIR MED i filmdatabase
  • Fotballdatabase
    • Introduksjon
    • GRUNNLIKE spørringer om fotballdatabase
    • UNDERHANDLINGER om fotballdatabase
    • BLIR MED spørsmål på fotballdatabase
  • Sykehusdatabase
    • Innledning
    • GRUNNLEGGENDE, UNDERFATTINGER og JOINS
  • Medarbeiderdatabase
    • GRUNNLEGGENDE spørsmål om medarbeiderdatabase
    • UNDERFORDRINGER om medarbeiderdatabase
  • Mer fremover!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *