Kodulehed
[382] - Andmebaasid I (ITI0206) (kevad 2022)
Esiletöstetud Kiirvalik
Lisainfo Kõige olulisemate tegevuste kiirvalik. Failide saatmiseks valige Vastamine alt sobiv ülesanne.
Üldist
Materjalid
LisainfoMaterjalide kataloogid
Isiklik
Lisainfo Info ainult Sulle - teised kasutajad seda ei näe
Abi
Lisainfo Võimalus küsida õppejõult abi (nagu foorum, kus saab küsida küsimusi ja kommenteerida vastuseid)
Mitmesugust
Abi / Kasutajatugi / SQL

Avalikud küsimused ja vastused:

Küsimuste teemade nimekiri

Anonüümne (13.03.2022 10:53):
Mis vahe on tabelite ühendamisel (join) ja ühendi leidmisel (union)?
Vastus: Ühendamine (join) on selleks, et saada tabelist loetud ritta juurde uusi andmeid (enamasti mõnest teisest tabelist, ehki ka tabeli ühendamine iseendaga - self-join - on võimalik).

Näiteks oletame, et andmebaasis on järgmise struktuuriga tabelid.

[Tudeng]-1----------0..*-[Oppimine]

Iga õppimine on seotud täpselt ühe tudengiga. Loen ridu tabelist Oppimine ja tahan, et igas saadud reas oleks ka selle õppimisega seotud tudengi perenimi. Selleks pean ühendada õppimise tabeli read tudengi tabeli ridadega. Pean seda tegema nii, et iga õppimise tabeli rida ühendatakse just ja ainult selle tudengi tabeli reaga, kus vastav tudeng on seotud vastava õppimisega.

Vanem süntaks:
SELECT Oppimine.*, Tudeng.perenimi AS tudengi_perenimi
FROM Oppimine, Tudeng
WHERE Oppimine.tudeng=Tudeng.tudkood;


Uuem süntaks:
SELECT Oppimine.*, Tudeng.perenimi AS tudengi_perenimi
FROM Oppimine INNER JOIN Tudeng ON Oppimine.tudeng=Tudeng.tudkood;

Ühendi (union) leidmine on selleks, et leida hulkade ühend.

SELECT eesnimi, perenimi
FROM Tudeng
UNION SELECT eesnimi, perenimi
FROM Oppejoud;

Eelnev päring moodustab tabeli, kus on nii õppejõudude kui tudengite ees- ja perenimed. Vaikimisi eemaldatakse kordused.

UNION operatsioonis osaleb kaks hulka (antud juhul ridade hulka). Nende hulga elementidel peab olema ühesugune struktuur.

SELECT eesnimi, perenimi
FROM Tudeng

leiab read, kus on kaks tekstitüüpi välja.

SELECT eesnimi, perenimi
FROM Oppejoud;

leiab read, kus on kaks tekstitüüpi välja.

Seega kahes ridade hulgas, mida UNION'iga kokku panen, peavad olema samasuguse struktuuriga read.

Hästi piltlikult rääkides.
  • Ühendamine (join) on nagu rongile vagunite lisamine, kusjuures rongile tuleb lisada õiged vagunid, mis peavad jõudma rongi sihtkohta.
  • Ühendi (union) leidmine on nagu ühesuguse kujuga kastide üksteise otsa virna laadimine.

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!