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!