Hva er fordelene og ulempene med et bli med eller en underforespørsel?

...

Databasespørringer henter spesifikk informasjon fra databasen.

En underspørring er en spørring i en annen spørring. En underspørring kan også inneholde en annen underspørring. Disse sies å være "nestede" underspørringer. En sammenføyning er når to eller flere tabeller refereres til i "Fra"-klausulen i spørringen. Ulike databasemotorer kan optimalisere underspørringer og sammenføyninger forskjellig. For eksempel vil DB2s optimizer transformere en underspørring til en sammenføyning hvis visse kriterier er oppfylt. I noen tilfeller gir en sammenføyning bedre ytelse enn en underspørring.

Hva skaper en underspørring

En underspørring er en "SELECT"-setning i "WHERE" eller "HAVING"-setningen i en ytre "INSERT", "UPDATE", "MERGE" eller "DELETE"-setning. Underspørringen kalles også "indre spørring" eller "indre utvalg". Underspørringen kan ha en "FROM"-klausul med en eller flere tabeller og kan eventuelt ha en "WHERE", "GROUP BY" eller "HAVING"-klausul. Den står alltid i parentes.

Dagens video

Fordeler og ulemper med underspørringer

Underspørringer er fordelaktige fordi de strukturerer spørringen for å isolere hver del av setningen, utføre den samme operasjonen som vanligvis vil kreve komplekse sammenføyninger og fagforeninger og er lettere å lese. Underspørringer var til og med grunnlaget for navnet "Structured Query Language" (SQL) på grunn av deres lett lesbare struktur. En ulempe er at du ikke kan endre en tabell og velge fra den samme tabellen i en underspørring i den samme SQL-setningen. Underspørringer kan også ta lengre tid å utføre enn en sammenføyning på grunn av hvordan databaseoptimalisatoren behandler dem.

Hva gjør A Join

De fleste underspørringer kan skrives om som sammenføyninger, og de fleste sammenføyninger kan skrives om som underspørringer. En sammenføyning definerer to eller flere tabeller med en relatert kolonne. Tabeller er vanligvis satt sammen på primær- og fremmednøkler. For eksempel kan en ansatttabell ha en primærnøkkel til en ansatt-ID-kolonne, mens en timelistetabell også har en ansatt-ID-kolonne som er en fremmednøkkel til ansatttabellen. SQL-koblingen kan skrives som "WHERE ansatt.empid = timeliste.empid" eller "FRA ansatt JOIN timeliste PÅ (ansatt.empid = timeseddel.empid)."

Fordeler og ulemper med sammenføyninger

Hovedfordelen med en join er at den utføres raskere. Ytelsesøkningen merkes kanskje ikke av sluttbrukeren. Men fordi kolonnene er spesifikt navngitt og indeksert og optimalisert av databasemotoren, vil gjenfinningstiden nesten alltid være raskere enn for en underspørring. Det er også indre og ytre skjøter, venstre og høyre skjøter, hel skjøter og tverrskjøter. En ulempe med å bruke joins er at de ikke er like enkle å lese som underspørringer. En annen ulempe er at det kan være forvirrende med hensyn til hvilken sammenføyning som er den riktige typen sammenføyning å bruke for å gi riktig ønsket resultatsett.