SQL * Loo tabel "osakonnad" tulpadega "id" ja "nimetus". * Lisa mõned andmed. * Loo tabel "tootajad" tulpadega id, eesnimi, perekonnanimi, osakonna_id, palk. * Lisa mõned andmed. * Näita päringu abil välja kõik osakonnad. * Näita välja kõik töötajad, iga töötaja juures on kirjas ka osakonna nimi. * Näita LEFT JOINi abil eelmise päringuga võrreldes välja ka need osakonnad, kus pole kirjas ühtegi töötajat. * Arvuta iga töötaja juurde välja tema kahe kuu palk. * Lisa töötajale id-ga 3 palgale juurde 100 krooni. * Kustuta töötaja id-ga 4. * Teata osakondade nimed ning igaühes neist makstav palkade summa. (Aitavad funktsioonid SUM ning GROUP BY) * Teata osakondade nimed ning igaühes neist makstav suurim palk. * HAVING-piirangu abil näita välja ainult need osakonnad, kus suurim palk ei ületa 5000 krooni. * Kasuta sama tulemuse saamiseks alampäringut. * Leia töötajad, kes asutusest saavad kõige väiksemat palka. * Väljasta iga osakonna kohta töötajad, kes saavad selles osakonnas kõige vähem palka. * Väljasta osakondade nimetused ning nende taha arv, kui palju on selles osakonnas osakonna kõige väiksema palga saajaid. * Väljasta EXISTS-kontrolli abil need osakonnad, kus on töötajaid * Väljasta NOT EXISTS-kontrolli abil need osakonnad, kus pole töötajaid * Leia sama tulemus grupioperaatorite IN ja NOT IN abil * Väljasta UNION-käsu abil kõik eesnimed kaks korda * Väljasta nimed inimestel, kelle osakonna id-ks on 2 või 4. * Saa sama tulemus operaatori IN ja komaga eraldatud loetelu abil. * Võrdle UNION ja UNION ALL käskude erinevust Vihjeid CREATE TABLE osakonnad( id INT NOT NULL, nimetus VARCHAR(30), PRIMARY KEY(id) ); CREATE TABLE tootajad( id INT NOT NULL, eesnimi VARCHAR(30), perekonnanimi VARCHAR(30), osakonna_id int, palk INT, PRIMARY KEY(ID), FOREIGN KEY(osakonna_id) REFERENCES osakonnad(id) ); INSERT INTO osakonnad VALUES (1, 'Turundus'); INSERT INTO osakonnad VALUES (2, 'Transport'); INSERT INTO osakonnad VALUES (3, 'Kinnisvara'); INSERT INTO osakonnad VALUES (4, 'Remont'); INSERT INTO tootajad VALUES (1, 'Juku', 'Juurikas', 2, 3500); INSERT INTO tootajad VALUES (2, 'Mati', 'Juurikas', 2, 4500); INSERT INTO tootajad VALUES (3, 'Kati', 'Juurikas', 1, 5500); INSERT INTO tootajad VALUES (4, 'Sass', 'Juurikas', 4, 3500); SELECT * FROM osakonnad; SELECT * FROM osakonnad LEFT JOIN tootajad ON osakonnad.id=tootajad.osakonna_id; +----+------------+------+---------+---------------+-------------+------+ | id | nimetus | id | eesnimi | perekonnanimi | osakonna_id | palk | +----+------------+------+---------+---------------+-------------+------+ | 1 | Turundus | 3 | Kati | Juurikas | 1 | 5500 | | 2 | Transport | 1 | Juku | Juurikas | 2 | 3500 | | 2 | Transport | 2 | Mati | Juurikas | 2 | 4500 | | 3 | Kinnisvara | NULL | NULL | NULL | NULL | NULL | | 4 | Remont | 4 | Sass | Juurikas | 4 | 3500 | +----+------------+------+---------+---------------+-------------+------+ SELECT nimetus, MAX(palk) FROM osakonnad, tootajad WHERE tootajad.osakonna_id=osakonnad.id GROUP BY nimetus SELECT nimetus, (SELECT max(palk) FROM tootajad WHERE osakonna_id=osakonnad.id) FROM osakonnad LEFT JOIN tootajad ON tootajad.osakonna_id=osakonnad.id SELECT eesnimi, palk FROM tootajad WHERE palk=(SELECT min(palk) FROM tootajad) SELECT nimetus, eesnimi, palk FROM osakonnad LEFT JOIN tootajad ON tootajad.osakonna_id=osakonnad.id WHERE palk=(SELECT min(palk) FROM tootajad WHERE osakonna_id=osakonnad.id) SELECT nimetus, count(*) FROM osakonnad LEFT JOIN tootajad ON tootajad.osakonna_id=osakonnad.id WHERE palk=(SELECT min(palk) FROM tootajad WHERE osakonna_id=osakonnad.id) GROUP BY nimetus SELECT nimetus FROM osakonnad WHERE EXISTS (SELECT * FROM tootajad WHERE osakonnad.id=tootajad.osakonna_id) SELECT nimetus FROM osakonnad WHERE NOT EXISTS (SELECT * FROM tootajad WHERE osakonnad.id=tootajad.osakonna_id) SELECT nimetus FROM osakonnad WHERE osakonnad.id IN (SELECT osakonna_id FROM tootajad) SELECT nimetus FROM osakonnad WHERE osakonnad.id NOT IN (SELECT osakonna_id FROM tootajad) SELECT eesnimi FROM tootajad where osakonna_id=2 UNION SELECT eesnimi FROM tootajad where osakonna_id=4 SELECT eesnimi FROM tootajad where osakonna_id=2 UNION SELECT eesnimi FROM tootajad where palk>4000 SELECT eesnimi FROM tootajad where osakonna_id=2 UNION ALL SELECT eesnimi FROM tootajad where palk>4000 SELECT * FROM tootajad WHERE osakonna_id IN (2, 4)