VDU laboras MySQL LD5
Liko tik vienas duomenų bazių laboras, tai ir tą padariau. Vaikai dar miega, o padarytas darbas “kupros nespaus”, be to galėsiu atsiskaityti per pirmą susitikimą su dėstytoja.
-- visi uzsakovai, kuriu telefono numeris prasideda 52 select * from uzsakovai where telefonas like '52%'; -- visi uzsakovai, kuriu telefono numeris prasideda 2 select * from uzsakovai where telefonas like '2%'; -- ups platintojai be realiu pavardziu :) -- priskiriam pavardes update platintojai set pavarde='Stanfield' where platintojas_id=1; update platintojai set pavarde='Demuth' where platintojas_id=2; update platintojai set pavarde='Armstrong' where platintojas_id=3; update platintojai set pavarde='Hatcher' where platintojas_id=4; update platintojai set pavarde='Margaret' where platintojas_id=5; update platintojai set pavarde='Blaine' where platintojas_id=6; update platintojai set pavarde='Whitten' where platintojas_id=7; -- platintoju informacija, kuriu pavardes prasideda raide B select * from platintojai where lower(pavarde) like 'b%'; -- visa informacija is lenteliu uzsakovai ir uzsakymai. -- Uzklausos rezultate turetume matyti visus lenteles Uzsakovai irasus. -- left rysys select * from uzsakovai u left join uzsakymai z on (z.uzsakovas_id=u.uzsakovas_id); -- right rysys select * from uzsakovai u right join uzsakymai z on (z.uzsakovas_id=u.uzsakovas_id); -- sukurkime lentele praejusiu_metu_uzsakovai. -- lentele sudaro tie patys laukai ir ju tipai kaip lenteleje uzsakovai create table praejusiu_metu_uzsakovai like uzsakovai; -- idedame tuos pacius uzsakovus i praejusius metus insert into praejusiu_metu_uzsakovai select * from uzsakovai; -- informacija is abieju lenteliu apie uzsakovus (select pavarde, vardas from uzsakovai) union (select pavarde, vardas from praejusiu_metu_uzsakovai); -- pastebime, kad pasikartojimu nerodo -- informacija is abieju lenteliu apie uzsakovus (select pavarde, vardas from uzsakovai) union all (select pavarde, vardas from praejusiu_metu_uzsakovai); -- dabar matome ir pasikartojimus -- informacija apie uzsakovus, kurie nepadare jokio uzsakymo select * from uzsakovai u left join uzsakymai z on (z.uzsakovas_id=u.uzsakovas_id) where ISNULL(z.uzsakovas_id); -- sukuriame tarpine lentele su informacija: -- uzsakovo id, uzsakovo pavarde, padarytu uzsakymu kiekis create temporary table tarpiniai_rezultatai as select u.uzsakovas_id, u.pavarde, count(z.leidinys_id) as uzsakymu_kiekis from uzsakovai u inner join uzsakymai z on (z.uzsakovas_id=u.uzsakovas_id) group by z.uzsakovas_id; select * from tarpiniai_rezultatai;
Ką tikrai norėčiau, kad dėstytoja užduotų optimizuoti lentelių struktūrą, indeksus ir užklausas ;)
Panašūs įrašai:

kiras
31 Aug, 2008
manau dėstytoja neapsidžiaugs tavo nesavanaudiška pagalba visiems kursiokams :)
Ponike
31 Aug, 2008
O tu esi garantuotas kad cia viskas teisingai ir be klaidu.
valdas
2 Sep, 2008
o jums nemokat pabandyt?? :D