Sissejuhatus sisemisse liitumisesse Oracle'iga
Liitumisklausleid kasutatakse oraakli andmebaasis teabe saamiseks mitme tabeli andmetele juurde pääsemiseks. Oraakli andmebaasis on erinevat tüüpi liitumisi.
Sisemine liitumine on üks oraaklite andmebaasis liitumise tüüpidest. Sisemine liitumine, liituge mitme tabeliga ja tagastage need read, mille ühinemistingimus on või on tõene. Sisemist liitumist nimetatakse ka lihtsaks liitumiseks. Siseühendus on liitmistüüpide hulgas kõige tavalisem liitumine.
Sisemise liitmise süntaks
SELECT column (, column ) FROM t1
INNER JOIN t2
ON t1.column = t2.column;
Sisemine liitumise visuaalne esitus on esitatud allpool toodud diagrammil, nagu allpool toodud diagrammil, varjutatud ala naasmine Oracle'i sisemise liitumise tagajärjel
Oracle'i sisemine liitumine tagastab selle tulemusel t1 ja t2 lõikepunktid.
Sisemise liitumise päringunäited
Mõistame sisemise liitumise üksikasju mõne päringunäite abil:
Näide nr 1
Sisemise liitumise päringu näide
SELECT employee.employee _id, employee.employee_name, department. department_name
FROM employee
INNER JOIN department
ON employee.employee _id = department.employee _id;
See ülaltoodud Oracle INNER JOINi näide tagastab kõik read töötajate tabelist ja osakonnatabelist, kus töötaja _id väärtus nii töötajate tabelis kui ka osakonnatabelis on vastavuses.
Siin käsitleme hr-skeemi, mis on oraaklite andmebaasi näidisskeemid. HR-skeem sisaldab RIIKIDE, TÖÖTAJATE, OSAKONDADE, TÖÖ_HISTORIA, TÖÖD, ASUKOHTAD, REGIOONID tabeleid, milles oleme huvitatud või vajame TÖÖTAJATE, OSAKONNA ja ASUKOHA tabeleid.
Nende tabelite kirjeldus on -
Tabel TÖÖTAJAD
Tabel OSAKONNAD
Tabel ASUKOHAD
Näide 2
Kahe laua sisemine liitumisnäide
Siinkohal sooviksime hankida andmeid kahelt tabelilt TÖÖTAJAD ja OSAKONNAD. Siit päringust kirjutame selleks, et saada töötaja töötaja ID ja töötaja eesnimi töötaja tabelist ja osakonna nimi osakonna tabelist -
SELECT employees. employee_id, employees. first_name, departments.department_name
FROM employees, departments
WHERE employees. employee_id = departments. department_id;
Väljund
Veeru nimedele koos tabeliga eelneb Oracle SELECT-lause. Kui veerg on mõlemal tabelil ühine, tuleb veeru nime selguse selguse huvides lisada tabeli nime ees. Tabelid, kust andmeid tuleb hankida, täpsustavad alates komaga eraldatud klauslist. WHERE-klauslis täpsustage liitumistingimus. Töötajate ja osakonnatabelite vaheline seos määratakse kindlaks mõlema tabeli töötaja_id ühises veerus sisalduvate väärtuste järgi ja seda suhet nimetatakse Equi Liitu. Selles suhtes on tavaliselt kasutatud primaar- ja võõrvõtmeid.
Näide 3
Kahe pseudonüümiga tabeli sisemine liitumisnäide
Kirjutagem ülaltoodud näide ümber, kasutades tabeli pseudonüüme järgmiselt:
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id;
Väljund
Nagu ülaltoodud päringu korral, luuakse tabeli pseudonüümid alates alapunktist veeru nime järel ja selle asemel, et kirjutada täielikku tabeli nime valimisklauslisse enne iga veergu, kasutage ülaltoodud päringus tabeli Varjunimed kui e ja d.
Näide 4
Kahe tabeli sisemine liitumisnäide koos lisaklauslite lisamisega
Järgmine päringunäide, kus lisame oma Oracle SELECT avaldusele täiendavad klauslid, kus klausel koondamiste lisamiseks, tagastatud ridade piiramiseks, sortimisjärjestuse määratlemiseks ja nii edasi. Siin on näidispäring, mis otsib kõik töötajad, kes töötavad rahanduse, tootmise ja ehituse osakondades.
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ( 'Finance', 'Manufacturing', 'Construction' );
Väljund
Näide 5
Kahe tabeli sisemine liitumisnäide järjestuse alusel
Järgmise päringu näitena kirjutame ülaltoodud päringu ümber, lisades tellimuse klausli järgi, kuvades töötaja andmed osakonna nime järgi.
SELECT e. employee_id, e. first_name,
d. department_name
FROM employees e, departments d
WHERE e. employee_id = d. department_id
AND d. department_name in ('Finance', 'Manufacturing', 'Construction')
ORDER BY d. department_name;
Väljund
Näide 6
Sisemise liitumise näide mitme tabeli liitumiseks
Mõnikord peame teabe saamiseks liituma enam kui kahe tabeliga. Järgmisena kirjutame päringunäite mitme tabeli liitmiseks. Vaatleme näidet, mille abil tahame töötaja tabelist tuua töötaja eesnime, osakonna tabelist osakonna nime ja asukohatabelis selle riigi ID, kus see töötaja töötab.
SELECT e. first_name, e. salary, d. department_name, l. city, l. country_id
FROM employees e, departments d, locations l
WHERE e. employee_id = d. department_id
AND
d. location_id = l. location_id;
Väljund
Nelja või enama tabeli liitmiseks kehtib sama kontseptsioon, lisades tabeli nime oraakli klausli FROM ja rakendades liitumistingimuse oraakli WHERE klauslis.
Järeldus
Sisemine liitumine on üks oraaklite andmebaasis liitumise tüüpidest. Sisemine liitmine, mida kasutatakse mitme tabeli liitmiseks ja nende ridade tagastamiseks, mille ühinemistingimus on või on tõene. Tavaliselt on primaar- ja võõrvõti seotud sisemise liitumisega, et luua seos tabelite vahel.
Soovitatavad artiklid
See on juhend Oneri sisemise liitumise kohta. Siin käsitleme sisemise liitumise sissejuhatust koos mõne näitega üksikasjalikumalt. Lisateavet leiate ka meie muudest soovitatud artiklitest -
- Liitub MySQL-iga
- Oracle'i päringud
- Oracle'i andmete ladustamine
- Mis on Oracle'i andmebaas