? En delspørring er en spørring i en annen spørring . En delspørring også kan inneholde en annen subquery . Disse er sagt å være " nestede " subqueries . En join er når to eller flere tabeller er referert i "Fra "-klausulen i spørringen . Ulike database motorer kan optimalisere subqueries og slutter seg annerledes. For eksempel vil DB2 optimalisator forvandle en delspørring til en join dersom visse kriterier er oppfylt . I noen tilfeller , en sammenføyning gir bedre ytelse enn en subquery . Hva gjør en delspørring
En delspørring er en " SELECT " statement innenfor " HVOR " eller "å ha "-klausulen av en ytre "SETT INN ", " oppdateringen", "Slå sammen " eller "SLETT " statement . Delspørringen også kalles "indre søket" eller "indre select ". Delspørringen kan ha en " FRA "-klausulen med en eller flere tabeller og kan eventuelt ha en " HVOR ", " GROUP BY" eller "å ha "-klausul . Det er alltid står i parentes .
Fordeler og ulemper med subqueries
Delspørringer er en fordel fordi de strukturere spørringen å isolere hver del av erklæringen , utføre den samme operasjonen som vanligvis ville kreve komplekse sammenføyninger og fagforeninger og er lettere å lese. Subqueries selv var grunnlaget for navnet " Structured Query Language" ( SQL) på grunn av sin lett lesbar struktur . En ulempe er at du ikke kan endre en tabell og velge fra samme tabell i en subquery i samme SQL-setning. Subqueries også kan ta lengre tid å gjennomføre enn en delta på grunn av hvordan databasen Optimizer behandler dem.
Hva gjør en sammenføyning
De fleste subqueries kan omskrives som tiltrer , og de fleste blir med kan omskrives som subqueries . En join definerer to eller flere tabeller ved et beslektet kolonne . Tabeller vanligvis er sluttet på primær-og fremmednøkler . For eksempel kan en ansatt tabellen har en primærnøkkel av en ansatt id kolonne , mens en timeliste bord har også en ansatt id kolonne som er en fremmednøkkel til tabellen employee . SQL join kan skrives som " WHERE employee.empid = timesheet.empid " eller " FROM ansatt BLI timeliste ON ( employee.empid = timesheet.empid ) ."
Fordeler og ulemper med Delta
den største fordelen med en join er at den utfører raskere . Ytelsen øker kanskje ikke så merkbar av sluttbrukeren . Men fordi kolonnene er spesielt navngitt og indeksert og optimalisert av databasemotor , henting tiden nesten alltid vil være raskere enn en subquery . Det er også indre og ytre sammenføyninger , venstre og høyre blir med , full sammenføyninger og kryss sammenføyninger. En ulempe med å bruke tiltrer er at de ikke er like lett å lese som subqueries . En annen ulempe er at det kan være forvirrende om hvilken join er riktig type slutte å bruke for å gi riktig ønsket resultat sett .