Forum » Programiranje » SQL-DML pomoč
SQL-DML pomoč
JackCola ::
Bazo sestavljajo tabele Knjiga, JePrebrala in Oseba. Strukture tabel opisujejo relacijske sheme
Knjiga(ISBN:N, Ime_knjige:A40)
JePrebrala(EMSO:A13, ISBN:N, Datum:D)
Oseba(EMSO:A13, Priimek:A20, Ime:A10, Naslov:A30, Kraj:A20)
Vprašanja pa so taka:
- izpiše imena knjig, ki jih je prebralo vsaj 10 oseb;
- izpiše imena knjig, ki so jih prebrale vse osebe;
- izpiše priimke oseb, ki niso prebrale nobene knjige;
- izpiše koliko oseb je prebralo knjig 'Vojna in mir‘;
- v tabeli Knjiga zmanjša ISBN knjige 'MATEMATIKA 4' za 3;
- izpiše imena knjig, katerih ISBN je manjši od 100;
- izpiše imena knjig, ki so jih prebrale vse osebe razen 'Mlinar Miha‘;
- izpiše koliko knjig je prebral 'Mlinar Miha' v letih od 1995 do 1998;
- izpiše ime nazadnje prebrane knjige.
Če se komu da malo napenjat možgančke in mi pomagat pri rešitvi (vsaj nekaj) vprašanj bi bil zelo hvaležen.
Znam osnove mysql querya vendar takoj ko pride do povezovanja več tabel med sabo tj. uporaba join funkcije se mi zalomi. Hvala vnaprej!
Knjiga(ISBN:N, Ime_knjige:A40)
JePrebrala(EMSO:A13, ISBN:N, Datum:D)
Oseba(EMSO:A13, Priimek:A20, Ime:A10, Naslov:A30, Kraj:A20)
Vprašanja pa so taka:
- izpiše imena knjig, ki jih je prebralo vsaj 10 oseb;
- izpiše imena knjig, ki so jih prebrale vse osebe;
- izpiše priimke oseb, ki niso prebrale nobene knjige;
- izpiše koliko oseb je prebralo knjig 'Vojna in mir‘;
- v tabeli Knjiga zmanjša ISBN knjige 'MATEMATIKA 4' za 3;
- izpiše imena knjig, katerih ISBN je manjši od 100;
- izpiše imena knjig, ki so jih prebrale vse osebe razen 'Mlinar Miha‘;
- izpiše koliko knjig je prebral 'Mlinar Miha' v letih od 1995 do 1998;
- izpiše ime nazadnje prebrane knjige.
Če se komu da malo napenjat možgančke in mi pomagat pri rešitvi (vsaj nekaj) vprašanj bi bil zelo hvaležen.
Znam osnove mysql querya vendar takoj ko pride do povezovanja več tabel med sabo tj. uporaba join funkcije se mi zalomi. Hvala vnaprej!
btree ::
evo na hitro par rešenih, drugim sem ti delno spisal pogoje
- izpiše imena knjig, ki jih je prebralo vsaj 10 oseb;
select distinct Ime_knjige
from Knjiga
where ISBN:N in (
select ISBN:N
from JePrebrala
group by ISBN:N
having count(*)>10)
- izpiše priimke oseb, ki niso prebrale nobene knjige;
select distinct Priimek
from Oseba
where emso not in
(select emso
from JePrebrala)
- izpiše koliko oseb je prebralo knjig 'Vojna in mir';
select count(emso)
from JePrebrala
where ISBN:N in
(select ISBN:N
from Knjiga
where Ime_knjige = 'Vojna in mir')
- v tabeli Knjiga zmanjša ISBN knjige 'MATEMATIKA 4' za 3;
-- v primeru, da tabela ni povezana z zunanjim ključem z JePrebrala
update Knjiga
set ISBN:N = ISBN:N - 3
where Ime_knjige = 'MATEMATIKA 4'
- izpiše imena knjig, katerih ISBN je manjši od 100;
uporabi pogoj
where ISBN:N manjšiod 100
- izpiše imena knjig, ki so jih prebrale vse osebe razen 'Mlinar Miha';
where emso not in (
select emso
from oseba
where ime = ...
and priimek = ...
- izpiše koliko knjig je prebral 'Mlinar Miha' v letih od 1995 do 1998;
where ISBN:N in (
select ISBN:N
from JePrebrala
where datum between ( ... and ... )
- izpiše ime nazadnje prebrane knjige.
...
where datum = (select max(datum)from JePrebrala)
- izpiše imena knjig, ki jih je prebralo vsaj 10 oseb;
select distinct Ime_knjige
from Knjiga
where ISBN:N in (
select ISBN:N
from JePrebrala
group by ISBN:N
having count(*)>10)
- izpiše priimke oseb, ki niso prebrale nobene knjige;
select distinct Priimek
from Oseba
where emso not in
(select emso
from JePrebrala)
- izpiše koliko oseb je prebralo knjig 'Vojna in mir';
select count(emso)
from JePrebrala
where ISBN:N in
(select ISBN:N
from Knjiga
where Ime_knjige = 'Vojna in mir')
- v tabeli Knjiga zmanjša ISBN knjige 'MATEMATIKA 4' za 3;
-- v primeru, da tabela ni povezana z zunanjim ključem z JePrebrala
update Knjiga
set ISBN:N = ISBN:N - 3
where Ime_knjige = 'MATEMATIKA 4'
- izpiše imena knjig, katerih ISBN je manjši od 100;
uporabi pogoj
where ISBN:N manjšiod 100
- izpiše imena knjig, ki so jih prebrale vse osebe razen 'Mlinar Miha';
where emso not in (
select emso
from oseba
where ime = ...
and priimek = ...
- izpiše koliko knjig je prebral 'Mlinar Miha' v letih od 1995 do 1998;
where ISBN:N in (
select ISBN:N
from JePrebrala
where datum between ( ... and ... )
- izpiše ime nazadnje prebrane knjige.
...
where datum = (select max(datum)from JePrebrala)
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL - izpitOddelek: Programiranje | 2031 (1055) | FTad |
» | MS Access (strani: 1 2 )Oddelek: Programiranje | 7392 (5450) | travica |
» | Knjige za branjeOddelek: Sedem umetnosti | 1236 (1060) | jizzer |
» | Naloge v PythonuOddelek: Programiranje | 2519 (2136) | Isotropic |
» | Administrator; izpitiOddelek: Loža | 2489 (1572) | Microsoft |