Et underforespørgsel er en forespørgsel i en anden forespørgsel. En underforespørgsel også kan indeholde en anden underforespørgsel . Disse siges at være " indlejrede " underforespørgsler . En join er, når to eller flere tabeller refereres i "Fra "-klausul i forespørgslen. Forskellige database motorer kan optimere underforespørgsler og slutter sig forskelligt. For eksempel vil DB2 s optimizer omdanne en underforespørgsel til en join , hvis visse kriterier er opfyldt. I nogle tilfælde , deltage i en udbytter bedre ydeevne end en underforespørgsel . Hvad gør en underforespørgsel
underforespørgsel er en " SELECT " erklæring inden for "hvor" eller " have" klausul i en ydre "INDSÆT ", " UPDATE ", "Flet " eller " DELETE " erklæring . Underforespørgslen også kaldes "indre forespørgslen " eller "indre select ". Underforespørgslen kan have en " FROM "-klausul med en eller flere tabeller og kan eventuelt have en " WHERE ", " GROUP BY " eller " have" klausul. Det er altid i parentes .
Fordele og ulemper ved underforespørgsler
Underforespørgsler er fordelagtige , fordi de strukturere forespørgslen at isolere de enkelte del af oversigten , skal du udføre den samme operation , der normalt ville kræve komplekse sammenføjninger og fagforeninger og er lettere at læse . Underforespørgsler selv var grundlaget for navnet " Structured Query Language" (SQL) på grund af deres let læselig struktur. En ulempe er, at du ikke kan ændre en tabel og vælge fra den samme tabel inden en underforespørgsel i samme SQL-sætning. Underforespørgsler kan også tage længere tid at udføre end en slutte på grund af, hvordan databasen optimizer behandler dem.
Hvad skaber en join
fleste underforespørgsler kan omskrives slutter , og de fleste slutter kan omskrives underforespørgsler . En join definerer to eller flere tabeller af en beslægtet kolonne. Tabeller normalt samles på primære og fremmede nøgler . For eksempel kan en medarbejder bordet have en primær nøgle medarbejder id kolonne , mens en timeseddel tabel har også medarbejder id kolonne, der er en fremmed nøgle til medarbejderen bordet. SQL join kan skrives som " WHERE employee.empid = timesheet.empid " eller " FROM employee JOIN timeseddel ON ( employee.empid = timesheet.empid ) ."
Fordele og ulemper ved Melder < br >
Den største fordel ved en join , er, at den udfører hurtigere. Forestillingen Stigningen måske ikke være mærkbar af slutbrugeren . Men fordi søjlerne er specielt navngivet og indekseret og optimeret af databasen motor, hentning tiden næsten altid vil være hurtigere end en underforespørgsel . Der er også indre og ydre joins venstre og højre slutter , fuld sammenføjninger og cross slutter . En ulempe ved at bruge slutter , er, at de ikke er så let at læse som underforespørgsler . En anden ulempe er, at det kan være forvirrende , hvilken join er den rigtige type slutte sig til at bruge til at give det korrekte ønskede resultat sæt .