få data fra forskellige tabeller

, viser data fra forskellige tabeller, tilhørende tabeller over en stor database er forbundet ved hjælp af udenrigs - og primære nøgler, eller hvad der betegnes ofte som fælles kolonner.evnen til at tilslutte sig tabeller, vil gøre det muligt for dem at få større betydning for resultatet, som er produceret.for n række tabeller, som skal forenes i en forespørgsel, minimum (n - 1) med betingelser er nødvendige.baseret på sammen med betingelser, oracle kombinerer den matchende par rækker og viser en, der er i overensstemmelse med tilstand., skal klassificeres som nedenfor, naturlige med (også kendt som en equijoin eller et enkelt medlem) - skaber en tilslutte sig ved hjælp af et almindeligt navn og defineret kolonne.,,, ikke - lighed med - sammen med tabeller, når der ikke findes tilsvarende rækker i tabel, kan forenes, for eksempel, at matche værdier i kolonne i en tabel med en række værdier i en anden tabel.,,, selv med - tilslutter sig en tabel til sig selv.,,, ydre med - omfatter fortegnelser over en tabel i produktionen, når der ikke er tilsvarende resultater i den anden tabel.,,, kartesiansk med (også kendt som en kartesiansk produkt eller krydse med) - replikater for hver række fra tabel 1 for hver linje fra den anden tabel. skaber med mellem tabeller med alle mulige resultater kombination.,,, naturlige tiltræder den naturlige nøgleord kan forenkle syntaks af en equijoin. et naturligt sammen med er mulige, når to (eller flere) tabel kolonner med samme navn, og kolonne er med kompatible, dvs. kolonne har et fælles område af værdier. de slutte sig til drift med rækker fra borde, som har lige kolonne værdier for de samme, der hedder kolonner. overveje den, at mange forhold mellem tjenestegrenene og ansatte tabeller. hver tabel er en kolonne, der hedder department_id.this kolonne er det primære nøgle af de tjenester og udenlandske nøgle af de ansatte. vælg e.first_name navn, d.department_name dname fra ansatte e naturlige med afdelinger first_name d; dname y ------ miller afd. 1 john afd. 1.tin afd. 2 edwin afd. 2, nedenfor udvælge spørgsmål slutter sig til de to tabeller, som udtrykkeligt angiver med tilstand med på nøgleord. vælg e.first_name navn, d.department_name dname fra ansatte e med departementer d (e.department_id = d.department_id), der er nogle begrænsninger med hensyn til naturlige med. du kan ikke fastsætte en fob - kolonne med naturlige med. også kolonner, der er involveret i sig, ikke kan betegnes med en tabel navn eller alias. ved hjælp af afsnit, anvendelse af naturlige slutter sig til oracle implicit identificere kolonner til at danne grundlag for optagelse.mange situationer kræver en udtrykkelig erklæring af med betingelser.i sådanne tilfælde, vi ved anvendelse af bestemmelse præciseres, at kriterier.da anvendelse af afsnit bliver tabeller baseret på ligestilling af kolonner, der også er kendt som equijoin.de er også kendt som indre tiltræder eller simple tiltræder., syntaks:, udvælge og<, kolonne liste > fra tabel 2 i figur 1 med ved hjælp af (kolonne navn), finder nedenstående udvælge spørgsmål, ansatte og departementer tabel er forenet ved hjælp af fælles kolonne department_id. vælg e.first_name navn, d.department_name dname fra ansatte e med departementer d ved hjælp af (department_id), selv med en self-join operation fører, når forholdet mellem interesse findes blandt de rækker, der er lagret i en enkelt tabel.med andre ord, når et bord er knyttet til sig selv, med er kendt som selv deltage., at arbejdstagere, der er ansat og deres rapportering ledere. at finde driftslederens navn for en arbejdstager ville kræve en tiltræde den emp tabel selv.det er en typisk kandidat til selv at komme med.vælg e1.firstname manager, e2.firstname medarbejder fra ansatte e1 med ansatte e2 (e1.employee_id = e2. manager_id), for e2.manager_id desc,,, ikke - equijoins, en ikke - lighed med anvendes, når den forretningsmæssigt forbundne søjler kan ikke være sammen med en tilsvarende tegn betyder, at der ikke findes tilsvarende rækker i tabel at blive forenet. ikke - lighed med gør dig i stand til at opbevare et interval er minimale værdi i en kolonne i et register og den maksimale værdi i anden kolonne.så i stedet for at finde en kolonne tocolumn kamp, kan du bruge en ikke - lighed med at afgøre, om det punkt, der afsendes ligger mellem den mindste og største intervaller i kolonnerne. hvis i finder en tilsvarende interval for den post, de tilsvarende shipping gebyr kan være tilbage i resultaterne.som med den traditionelle metode i lighed med en ikke - lighed med kan udføres i et, hvor klausul.desuden, med nøgleord kan anvendes med den klausul, at fastsætte relevante kolonner for medlemskab. vælg e.first_name, j.job_hisal, j.job_losal, e.salary fra ansatte e med job_sal j (e.salary mellem j.job_losal og j.job_losal), kan vi bruge alle sammenligning parameter tidligere behandlet som ligestilling og ulighed mellem erhvervsdrivende, er ugyldig, ikke er ugyldig, og relationelle.,, ydre tiltræder en ydre med anvendes til at identificere situationer, hvor rækker i tabel svarer ikke rækker i tabel 2, selv om de to tabeller er forbundet med. der er tre typer af ydre tiltræder: venstre, højre, og med fuld ydre.de begynder alle sammen med en indre sammen, og så kommer der nogle af rækkerne, der er blevet droppet.en venstre ydre med tilføjer tilbage alle rækker, der er faldet fra den første (til venstre), tabel i i stand, og produktionen kolonner fra den anden (til højre) tabel, er sat til nul.en ydre med tilføjer tilbage alle rækker, der er faldet fra den anden (til højre) i tabel i i stand, og produktionen kolonner fra den første (til venstre), tabel, er sat til nul.den fulde ydre med tilføjer tilbage alle rækker, der er faldet fra både tabellerne.,, ikke ydre med, en ydre med tilføjer tilbage alle rækker, der er faldet fra den anden (til højre) i tabel i i stand, og produktionen kolonner fra den første (til venstre), tabel, er sat til nul.bemærk nedenfor indeholder lister over de ansatte og deres tilsvarende tjenester.heller ingen arbejdstager har fået tildelt til afdeling 30.,, udvælge e.first_name, e.salary, d.department_id fra ansatte e) d, hvor e.department_id (+) = d.department_id; first_name y y y løn department_id john 6000 10 edwin. 2000 20 miller 2500 10 martin 4000 20 30, venstre, venstre ydre ydre sammen med tilføjer tilbage de rækker, der er faldet fra den første (til venstre), tabel i i stand, og produktionen kolonner fra den anden (til højre) tabel, er sat til nul.undersøgelsen påvist ovenfor kan anvendes til at påvise forlod ydre med, ved at udveksle holdning af (+) - tegn.,, udvælge e.first_name, e.salary, d.department_id fra ansatte e) d, hvor d.department_id = e.department_id (+); first_name y y y løn department_id john 6000 10 edwin. 2000 20 miller 2500 10 martin 4000 20 30,, fuld ydre med den fulde ydre med tilføjer tilbage alle rækker, der er faldet fra både tabellerne.under spørgsmål viser, indeholder en liste over de ansatte og deres afdelinger.bemærk, at arbejdstageren "mand" er ikke tildelt nogen afdeling indtil nu (er) og afdeling 30 er ikke tilknyttet enhver ansat.vælg nvl (e.first_name, '-') first_name, nvl (to_char (d.department_id), '-') department_id fra arbejdstager e fuld ydre med afdeling d. department_id = d. department_id; first_name department_id y -------------------- mand, john 10 edwin 20 miller 10 - 20 - 30 6. række udvalgte.,, kartesiansk produkt, eller cross kommer med, af to enheder, a og b, a * b er kendt som kartesiske produkt.en kartesiansk produkt består af alle mulige kombinationer af de rækker fra hver af de tabeller.når en tabel med 10 rækker er sammen med en tabel med 20 linjer, de kartesiansk produkt er 200 rækker (10 * 20 = 200), f.eks. med arbejdstageren tabel med otte rækker og afdeling tabel med tre rækker vil udarbejde en kartesiansk produkt tabel 24 rækker (8 * 3 = 24).,, kors med henviser til de kartesiansk produkt af to tabeller.den producerer over produktet af to tabeller.ovennævnte spørgsmål kan være skrevet med kors med klausul.,, en kartesiansk produkt resultat tabel er normalt ikke særlig nyttigt.faktisk, et sådant resultat kan være meget vildledende.hvis du udfører nedenstående spørgsmål for de ansatte og departementer tabeller, følge tabel indebærer, at alle ansatte har et forhold til alle afdelinger, og vi ved, at det simpelthen ikke er tilfældet.,, udvælge e.first_name, d.dname fra ansatte e) d, kors med kan skrives som, udvælge, e.first_name, d.dname fra ansatte e kors med departementer d;,



Previous:
Next Page: