xawiers.esu.as: 3-io lygio gyventojas

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:

  1. VDU laboras MySQL LD2
  2. VDU laboras MySQL LD3
  3. VDU laboras MySQL LD4
  4. VDU laboras MySQL LD1

  • manau dėstytoja neapsidžiaugs tavo nesavanaudiška pagalba visiems kursiokams :)

  • O tu esi garantuotas kad cia viskas teisingai ir be klaidu.

  • o jums nemokat pabandyt?? :D

You can follow any responses to this entry through the RSS 2.0 feed.