En subquery (nestet) er en del av hovedspørsmålet. Denne delen er innebygd med "hvor" -klausulen i uttalelsen. En subquery brukes vil alle mulige "velge", slette "osv. uttalelser med noen grunnleggende operatører som>,<, and, =, etc. One thing that competes for this command from others is that it doesn't support the use of the “ORDER BY” command inside the subquery because we use a subquery to make the query easier, whereas the use of this clause can make it more complex. However, we can use “order by” clause in the main command. The syntax of the subquery varies for every other statement. The examples used in this guide will be favorable in explaining the respective syntaxes.
SubQuery og SELECT -kommandoen
Vurder en tabell som heter teknologi. Tabellen er opprettet ved å bruke "Create" og "Sett inn" -uttalelser. Tabellen har 4 attributter (kolonne). Vis innholdet i tabellen ved hjelp av SELECT -setningen.
>> Velg * fra teknologi;Vi vil bruke et underspørs på denne tabellen. Denne subquery er relatert til bruken av "Select" -uttalelsen. Subquery fungerer i en slik situasjon når du trenger å bruke mer enn en tilstand på et enkelt bord. Hovedspørsmålet velger en del av tabellen, mens subQuery velger hviletabellen. Konseptet vil være klart etter å ha forstått det gitt et eksempel. Selve den utvalgte setningen brukes på mange måter i en undervisning. Alle mulige metoder forklares her en etter en. La oss starte eksemplene.
>> Velg T1.Navn, T1.år, (velg min (id) fra t2 hvor t1.ID = T2.id) subquery1 fra teknologi T1;Forklaring av denne spørringen krevde begrepet objektoppretting. Fra spørringen er det klart at tabellens kolonnenavn får tilgang til via referansebrevet, kjent som et objekt de fleste steder. Den første utvalgte kommandoen, hovedkommandoen, henter to kolonnernavn og året gjennom "T1", mens den tredje kolonnen avhenger av underutviklingen. En annen SELECT -kommando brukes til å hente IDen til teknologitabellen, hvis navn er satt som "SubQuery1". Her brukes en tilstand; IDene vises i den resulterende tabellen hvis tilstanden er fornøyd. En annen visning av tabellen opprettes som hentes av “T2”. For det første gjøres sammenligningen mellom IDene til både T1 og T2. Når begge ID -ene er de samme, kan du vise dem i resultatet med de to andre kolonnene. Med andre ord, hele ID -kolonnen vil bli valgt fordi kolonnen er den samme i begge tabellene.
Når du beveger deg mot neste "velg" -eksempel, er dette eksemplet enkelt sammenlignet med det siste, da det ikke er bruk av noe ekstra tilgang til objekt. Som vi vet at først, utføres sub-Query av systemet. I sub-Query brukes tilstanden på en kolonne i tabellen, der modellnummeret skal være større enn 3. Når systemet får de resulterende faktorene til sub-spørret, vil hovedspørsmålet implementere det på seg selv. For eksempel vises alle andre data fra kolonnene henholdsvis.
>> Velg * fra teknologi der ID inn (velg ID fra teknologi der modeller> 3);Du kan se at en enkelt rad fjernes fra bordet som ikke oppfyller tilstanden. En ting du må ha i tankene dine er spørsmålet om hvorfor vi har brukt sub-Query her, tilstanden kan brukes med "hvor" -klausulen direkte i SELECT-setningen. Svaret er at sub-spørringen deler den komplekse spørringen i isolerte deler. Nøyaktighetstiltakene øker de første gangene mer i sub-Query enn å bruke en enkelt kommando.
Vi har nå byttet mot et annet bord som heter “prøve1”. Tabellen har tre kolonner; en er alder. Vi vil først bruke en enkel Select -uttalelse først for å beregne gjennomsnittsalderen for personen fordi denne gjennomsnittsalderen vil bli brukt videre i tabellen.
>> velg * fra prøve1; >> Velg AVG (alder) fra prøve1;AVG (kolonnenavn) er en innebygd funksjon av postgres. Her brukes en subquery; spørringen vil vise personer med en alder større enn gjennomsnittsalderen beregnet. Subquery vil hente gjennomsnittsalderen for kolonnealderen.
>> Velg * fra prøve1 der alder> (velg AVG (alder) fra prøve1);2 rader er valgt ettersom disse aldre var større enn gjennomsnittsalderen.
Undervisning med bruk av innsatserklæring
Til nå har vi brukt sub-Query på et enkelt bord. Men nå er det et eksempel på å bruke hovedforespørselen på den ene tabellen og sub-Query på den andre. For dette formålet har vi brukt to tabeller her. Den ene er programvare, og den andre er et system. Hent posten gjennom Select -setningen for begge tabellene.
>> Velg * fra programvare;Nå vil vi bruke sub-Query på de gitte tabellene.
Velg uttalelse som hovedspørsmål kan også brukes i dette tilfellet. Men i dette eksemplet brukes "innsats". Denne uttalelsen vil legge til en rad i en tabell angående verdien i raden til en annen tabell ved å bruke en "hvor" -klausul.
>> Sett inn programvare (ID, Navn) Velg ID, Navn fra systemet hvor systemet.id> 5 og system.Navn = 'Windows';“system”Tabellverdier settes inn i“ programvare ”-tabellen ved å matche både tabellenes ID og navn. Hver kolonne i den forskjellige tabellen er spesifisert via tabellnavnet. Undervalget er avhengig av “plukke ut”Uttalelse her for å hente posten i to kolonner i tabellen.
Endre bord med subquery
Tenk nå på et annet tabellnavn, “Sample1”, med navn, ID -er og aldre av mennesker. Og den andre tabellen er den samme som introdusert i forrige eksempel "system”.
Oppdateringsspørsmålet brukes til å endre tabellen ved å erstatte den forrige med den nye som er gitt i kommandoen. Mens i tilfelle av subquery, er ikke verdien direkte gitt. Det hentes fra underkjøringen som brukes i det andre tabellen.
>> Oppdater prøve1 Sett navn = (velg navn fra systemet der systemet.ID = prøve1.id);Denne kommandoen “prøve1”Tabellen oppdateres ved å velge navnet fra“ System ”-tabellen der begge ID -ene er de samme. Den resulterende prøve1 -tabellen viser de to radene. Som ID og navnet ble valgt, så forble alderskolonnen intakt.
Undervisning og sletterklæring
En sletterklæring brukes til å fjerne verdiene til den ene tabellen fra den andre. Som vi har brukt begge samme tabeller, vil verdiene som brukes til å oppdatere en annen tabell bli slettet.
>> Slett fra systemet der eksisterer (velg Navn fra Sample1 hvor systemet.ID = prøve1.id);Når vi henter bordet etter sletting, kan vi se at en enkelt rad blir igjen ved hjelp av 'plukke ut'uttalelse.
Konklusjon
“PostgreSql SubQuery”Er et viktig trekk ved denne plattformen for å holde spørsmålene lett forståelig. I denne artikkelen har vi diskutert bruken av undervisning i hvert perspektiv av Select, Sett inn, oppdaterer og sletter kommandoer. Jeg håper at denne innsatsen vil hjelpe deg mens du bruker kommandoer i PostgreSql.