13.2.2017

TTZC0800 Tietokannat, Harjoitukset 3 (liitokset ja yhdiste)



Hae tehtävien tiedot SQL-kyselyin mysql.labranet.jamk.fi-palvelimelle luomastasi Ari Hovin kirjan harjoitustietokannasta haluamallasi ohjelmalla. Tallenna suorittamasi SQL-kyselyt tekstimuodossa.

Tehtävä 1 (liitokset)


  1. Hae henkilön 2245 projektien nimet ja tuntimäärät (tarvitaan kaksi taulua).
  2. Hae projektien nimet, henkilötunnukset, tehdyt tunnit ja suunnitellut tunnit. Lajittele pnimen mukaan. Taulut projekti ja proj_henk.
  3. Hae osastojen nimet ja tunnukset sekä henkilöistä snimi, enimi, kunta ja palkka. Ota mukaan vain ne, joiden palkka on 2800 tai alle. Lajittele osaston nimen ja henkilön nimen mukaan.
  4. Hae projektien nimet, niiden henkilöt (nimellä) ja kunkin henkilön tunnit per projekti (ei siis summia). Lajittele projekteittain ja henkilöittäin.

Tehtävä 2 (liitokset)


  1. Hae henkilöittäin henkilön nimi, tunnus ja tehdyt tunnit yhteensä (otsikko aliasnimi yht) sekä henkilön projektien lukumäärä (rivejä per henkilö proj_henk-taulussa)
  2. Hae kaikki projektit, niistä ptun, pnimi ja tunnit yhteensä (otsikkona aliasnimi yht). Ota mukaan myös ne projektit, joilla ei ole tunteja (eli P5 ja P6)
  3. Hae projekteittain ptun, pnimi, tunnit ja toteutuneiden ja suunniteltujen tuntien erotus helsinkiläisistä ja kuopiolaisista projekteista. Otsikoi sopivasti.
  4. Hae osastoittain osaston nimi ja tunnus ja osaston palkkasumma, minimi-, maksimi- ja keskiarvopalkka (otsikot palkkasumma, min, max ja ka).

Tehtävä 3 (yhdisteet)


  1. Hae samaan tulosjoukkoon sijaintipaikoittain kaikki henkilöt ja projektit (sijaintipaikka/kunta), htun/ptun). Rivillä pitää näkyä, onko kyseessä henkilö vai projekti. Järjestys: kunta nouseva, tun laskeva. Tuloksen malli on alla (laita sarakeotsikot ensimmäiseen SELECT-lauseeseen)
    +----------+------+----------+
    | kunta | tun | tyyppi |
    +----------+------+----------+
    | NULL | P6 | PROJEKTI |
    | HELSINKI | P3 | PROJEKTI |
    | HELSINKI | P2 | PROJEKTI |
    | HELSINKI | 2884 | HENKILO |
    | HELSINKI | 2245 | HENKILO |
    | KUOPIO | P5 | PROJEKTI |
    | TAMPERE | 3547 | HENKILO |
    | TAMPERE | 3546 | HENKILO |
    | TURKU | P4 | PROJEKTI |
    | TURKU | P1 | PROJEKTI |
    | TURKU | 2345 | HENKILO |
    | TURKU | 2234 | HENKILO |
    | TURKU | 2134 | HENKILO |
    +----------+------+----------

  2. Hae projektien tunnus, nimi ja sijainti. Jos sijainti on NULL, korvaa se tekstillä "<ei ole>".
  3. Toiseen järjestelmään tehtävää otosta varten laitetaan alle 2800 tai tasan 2800 olevat palkat omaan sarakkeeseensa ja yli 2800 olevat omaansa, alla olevan mallin mukaisesti. Tee kysely. Huom.: ei ole väliä tulee NULL-arvot nollina vai ei.
    +---------+---------+---------+
    | snimi | pienip | suurip |
    +---------+---------+---------+
    | Virta | 2800.00 | 0.00 |
    | Meri | 2800.00 | 0.00 |
    | Ranta | 2650.00 | 0.00 |
    | Jokinen | 2800.00 | 0.00 |
    | Metsä | 0.00 | 3100.00 |
    | Joki | 0.00 | 3100.00 |
    | Järvi | 0.00 | 2960.00 |
    +---------+---------+---------|