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 (27.03.2022 00:12):
Kuidas leida andmebaasist andmeid, mida seal justkui ei ole? Näiteks on andmebaasis andmed külaliste ja nende hotellide reserveerimiste kohta ja pean leidma külalised, kes EI OLE, 2014. aastal ühegi reserveerimist alustanud.
Vastus: Andmebaasi kontseptuaalne struktuur on antud juhul järgmine.

[Külaline]-1----------------0..*-[Reserveerimine]

Võimalik ülesande lahendus on selline.

SELECT Külaline.külalise_nr, Külaline.perenimi
FROM Külaline
WHERE Külaline.külalise_nr NOT IN
(SELECT Reserveerimine.külalise_nr FROM Reserveerimine
WHERE Year(Reserveerimine.alguse_aeg) = 2014);

SQLis me töötame hulkadega. Oletame näiteks, et teete fotosid ja peate valima, milliseid tahate säilitada. On kaks fotode hulka - need mida säilitada ja need mida mitte. Säilitatavaid fotosid võib hakata ükshaaval välja valima. Kuid mõnikord võib lihtsam olla vaadata kõik fotod üle ja visata ära need, mis ei tulnud kindlasti välja. Kõik allesjäänud fotod kuuluvad säilitamisele. Nii ka siin - alampäringuga leian kõik külalised, kellel on mõni reserveerimine 2014. aastal alanud. Põhipäringuga leian kõik ülejäänud külalised. Nende hulka kuuluvad nii külalised, kellel pole üldse reserveeringuid kui ka need, kelle kõik reserveeringud on alanud muul ajal kui 2014. aastal.

Siit tuleb välja üks üldine probleemide lahendamise strateegia (SQLis ja mujal). Kui tahan leida mingitele tingimusele vastavad olemid või seosed, siis otsin kõigepealt kõiki neid, mis minu tingimustele ei vasta ja siis leian kõik ülejäänud seda tüüpi olemid või seosed - need ongi need, mida otsin.

 

Hinda vastust:

Keskmine hinne : Pole veel hinnanguid!