SQL-harjoittelun tehtävät, k 2007

Tehtäväksianto näkyy myös SQLTrainer-ohjelman käyttöliittymän kautta. Harjoitukset perustuvat keittiökaluste-tietokantaan. Kannan kaaviosta on myös kuvaesitys.

Linkistä 'malli' löytyy kuva erään oikean ratkaisun tuottamasta vastauksesta. Vastauksen ei tarvitse olla täysin mallin mukainen. Kun ratkaiset tehtävän, vaihda sarakenimiä oletusarvoista vain, jos sitä on erikseen pyydetty.

Tehtävien U1-U8 tulostaulut ovat onnistuneen ylläpito-operaation jälkeisiä tauluja.

Erä 1: SQL:n yksinkertaiset kyselyt

K01 Listaa yrityksen tuotevalikoimaan kuuluvat tuottetyypit. Ota mukaan listaan sekä tunnus että nimi. malli
K02 Anna tuotekoodit EX-tuotesarjan tuotteilta, joiden hinta ylittää 100 euroa. malli
K03 Anna suunnitelmanumero, asiakkaan nimi ja suunnitelman laatimisaika niiden suunnitelmien osalta, jotka eivät ole vielä johtaneet tilaukseen. malli
K04 Laadi taulun unitprice perusteella hinnasto, jossa tuotteet (koodi riittää nimeä ei tarvita) on lueteltu tuotekoodin mukaan aakkosjärjestyksessä ja saman tuotteen eri mallit hinnan mukaan laskevassa järjestyksessä. malli

Erä 2: SQL-kyselyt

K05 Millaisia mallisarja - väri yhdistelmiä esiintyy suunnitelmiin otetuissa yhdistelmärungoissa. Anna luettelo mallisarjan tunnuksen mukaan järjestettynä. malli
K06 Laadi luettelo tilauksista, joiden toimitukset ovat myöhästyneet sovitusta. Ota luetteloon suunnitelmanumero, asiakkaan nimi, sovittu toimitusaika ja sarakkena DELAY kuinka monta päivää toimitus oli myöhässä. Järjestä tulosrivit myöhästymisajan perusteella laskevaan järjestykseen. malli
K07 Selvitä minkä levyisinä ja syvyisinä on saatavissa 90 cm korkeita yläkaappeja. (wall cabinet frame, tyyppitunnus WCF ) malli
K08 Listaa toimittamattomien tilausten suunnitelmanumero, asiakkaan nimi, asiakkaan osoite ja haluttu toimituspäivä toimituspäivän mukaan nousevassa järjestyksessä. Anna toimituspäivä suomalaisessa pp.kk.vvvv muodossa sarakkeessa DDATE. Anna asiakkaan osoite sarakkeessa ADDRESS siten, että katuosoitteen perään on pilkun ja tyhjämerkin jälkeen liitetty kaupunki. malli
K09 Mitä muita kuin HM-sarjaan elementtejä on otettu suunnitelmiin irrallisina valmiiksi määriteltyihin kokoonpanoihin kuulumattomina osina? Elementistä riittää listata niiden tunnukset ja mallisarja. Järjestä tulos ensisijaisesti mallisarjan ja toissijaisesti elementin tunnuksen mukaan. malli

Erä 3: SQL-liitoskyselyt

K10 Mitä osia ja kuinka monta kuuluu yhdistelmään BCF40x3D? Ota vastausriveille yhdistelmän nimi ja osien tunnukset sekä nimet. malli
K11 Mistä materiaalista hinnastossa esiintyviä 40 cm leveitä alakaappien runkoja (base cabin frame, BCF) on saatavissa? Laadi kysely, joka ei käytä hyväkseen yksikkötunnuksen rakennetta. malli
K12 Mihin mallisarjaan kuuluu valkoisia ovia (door, FRO)? Ovien ei tarvitse olla hinnoiteltuja. Anna sarjan tunnus ja nimi. malli
K13 Asiakas on kiinnotunut alakaapistokokoonpanosta BCF40x3D. Tulosta erilaiset osavaihtoehdot hintatietoineen. Raportissa tulee olla mukana osien tunnustietojen ja hinnan lisäksi osien lukumäärä, malli ja materiaali. malli
K14 Mitä valmiiksi määriteltyjä alakaappilaatikostoja löytyy? Laatikostossa on alakaapin rungon (base cabinet frame, BCF) lisäksi ainakin yksi vetolaatikko (drawer,DRA) Anna kokoonpanon tunnus ja selventävä nimi. Kokoonpanojen tunnusten rakennetta ei saa hyödyntää kyselyssä. malli
K15 Selvitä miten paljon kalliimpia ovat EX-sarjan kaappirungot (BCF,WCF) verrattuna UN-sarjan runkoihin? Anna tuloslistassa rungon tunnus, leveys ja korkeus, UN-sarjan hinta sekä hinnanero sarakkeessa DIFF. Anna alakaappirunkojen tiedot ennen yläkaappirunkojen tietoja. malli
K16 Anna suunnitelmien numero, asiakkaan nimi ja suunnitelman sisältö suunnitelmilta, joihin sisältyvissä kaapistoissa on magic touch- laatikoita. Sisällöstä halutaan joko erillisosan tai koosteen tunnus ja nimi sekä lukumäärä. Anna suunnitelmanumero sarakkeesa PL_NO, kalusteyhdistelmän tai osan tunnus sarakkeessa PART_NO ja yhdistelmän tai osan nimi sarakkeessa PART_NAME. malli

Erä 4: SQL-yhteenvetokyselyt

Y1 Kuinka monta sunnitelmaa on laadittu? Anna vastaus sarakkeessa PLANS. malli
Y2 Monenko eri korkeuden yläkaappeja (WCF, wall cabinet frame) on tarjolla? Anna vastaus sarakkeessa HEIGHTS. malli
Y3 Milloin viimeisin suunnitelma on tehty? Anna päiväys muodossa pp.kk.vvvv sarakkessa LATEST. malli
Y4 Kuinka monta toimituksessa myöhästynyttä tilausta on ja mikä on niiden osalta keskimääräinen myöhästymisen pituus? Anna lukumäärä sarakkeessa DCOUNT ja pituus sarakkeessa DELAY. Ota laskennassa mukaan vain jo toimitetut tilaukset (joilla siis on toimitusaika). . malli
Y5 Mikä on kallein hinnastossa oleva elementti ja paljonko se maksaa? Anna elementin tunnus, nimi, mallisarja ja hinta. malli
Y6 Viinihyllystöyksikköä WSK4070 voi tilata erikseen tai valmiin kokoonpanon osana. Kuinka monta WSK4070-yksikköä on suunniteltu kokoonpanojen osiksi? Anna vastauksessa yksikön tunnus sarakkeessa UNITCODE ja lukumäärä sarakkeessa CNT. malli
Y7 Viinihyllystöyksikköä WSK4070 voi tilata erikseen tai valmiin kokoonpanon osana. Kuinka monta WSK4070-yksikköä on yhteensä suunniteltu joko kokoonpanojen osiksi tai erikseen mukaan otettaviksi? Anna vastauksessa yksikön tunnus sarakkeessa UNITCODE ja lukumäärä sarakkeessa CNT. malli

Erä 5: SQL-ryhmäyhteenvedot

Y8 Kuinka monta erilaista tuotetta (eri tuotekoodia) kuhunkin tuotetyyppiin kuuluu. Anna lukumäärä sarakkeessa CNT. Tuotetyypistä riittää ottaa mukaan tyyppitunnus. Järjestä tulos tuotetyypin tunnuksen perusteella. malli
Y9 (HUOM: tehtävää muuttettu alkuperäisestä - sarjan EX tilalle TR) Valmiiden kokoonpanojen hinnaksi on kaavailtu 80% osien yhteishinnasta kokonaisluvuksi pyöristettynä. Selvitä mikä olisi näin määräytyvä hinta laatikostolle BCF40x3DM kun ovet (FRO) ovat sarjaa TR ja muut elementit sarjaa UN? Anna tulos sarakkeena TOTAL. Vihje: pyöristys funktiolla round(x,d), missä x on pyöristettävä ja d on desimaalien määrä, d voi puuttua. malli
Y10 Kuinka monta kuhunkin sarjaan kuuluvaa tuotetta sisältyy hinnastoon. Anna sarjasta sekä sen nimi, että tunnus. Anna lukumäärä sarakkeessa CNT. Järjestä tulos laskevaan järjestuykseen tuotteiden määrän perusteella. Voit jätää pois sarjat, joiden tuotteita ei esiinny hinnastossa. Järjestä tulos lukumäärän mukaan laskevasti. malli
Y11 Anna kunkin hinnastosta löytyvän tuotteen halvin ja kallein hinta sarakkeissa LOW ja HIGH sekä tieto siitä kuinka monena variaationa elementti on hinnoiteltu (sarake CHOICES). Elementistä riittää antaa sen tunnus. malli
Y12 Selvitä miten materiaali vaikuttaa ovien (FRO) hintaan. Järjestä materiaalit siitä valmistettujen ovien keskimääräisten hintojen mukaan järjestykseen halvimmasta kalleimpaan. Ota raporttiin mukaan myös keskihinta sarakkeena APRICE kahden desimaalin tarkkuudella. Vihje: funktio round(x,d) pyöristää.. malli
Y13 Laadi selvitys siitä, kuinka monta suunnitelmaa on tehty (sarake PLANS) ja kuinka suuri osuus niistä on johtanut tilaukseen (sarake ORDER_PERCENTAGE). Anna osuus prosentteina yhden desimaalin tarkkuudella. malli
Y14 Missä kokoonpanossa on eniten osia ja kuinka monta? Kokoonpanosta riittää antaa tunnus. Anna osien lukumäärä sarakkeessa CNT. malli
Y15 Kuinka monta kuhunkin sarjaan kuuluvaa tuotetta sisältyy hinnastoon. Anna sarjasta sekä sen nimi, että tunnus. Anna lukumäärä sarakkeessa CNT. Järjestä tulos laskevaan järjestykseen tuotteiden määrän perusteella. Ota mukaan myös sarjat, joiden tuotteita ei esiinny hinnastossa. Vihje: käytä ulkoliitosta tai yhdistettä. malli
Y16 Laske kaikkien suunnitelmien hinnat niihin kuuluvien osien hintojen summana. Anna summa sarakkeessa PRICE. Järjesta raportti suunnitelman tunnuksen perusteella. malli

Erä 6: Tietokannan ylläpito

Huom: Ylläpito-operaatiot eivät muuta alkuperäistauluja (vaan tilapäiskopioita), joten jos teet kyselyn muuttamaasi tauluun ylläpito-operaatiosi jälkeen eivät muutokset näy taulussa. Voit siis yrittää operaatiota useasti ja lähtötilanne on aina sama.

U1 Lisää tuotetyyppivalikoimaan maustehylly (spice rack) tunnuksella SPR. malli
U2 Markkinoille tuodaan uudet sarjan HI ovimallit. Näiden hinnaksi on päätetty kokonaisluvuksi pyöristettynä 20% korkeampi hinta kuin vastaavilla sarjan ST ovilla. Sarjaan ST kuuluu vain ovia. Lisää hinnat hinnastoon. malli
U3 Donald Duck täydentää tilaustaan liittämällä sinne viinikaapin WCF4070xW EX-sarjan koivurungolla (BIRCH) ja UN-sarjan koivunvärisellä edustalla. Lisää tuote tilaukseen. Tiedetään että Donaldilla on vain yksi tilaus. Suunnitelmaelementin tulevan järjestysnumeron voi laskea kyselyssä, mutta voit antaa sen myös vakiona. malli
U4 Bunny Easter muuttaa osoitteeseen Long Street 10 ja samalla hänen puhelinnumeronsa muuttuu numeroksi 55522. Kirjaa muutos kaikkiin hänen suunnitelmiinsa. malli
U5 Sarjan EX tuotteiden hintaa korotetaan 10% kokonaisluvuksi pyöristettynä. Kirjaa korotus. malli
U6 Bill Buyer muuttaa suunnitelmansa tilaukseksi 20.3.2007 ja haluaa toimituspäiväksi 1.6.2007 ja toimituksen kotiin tuotuna (home). Kirjaa muutos.. malli
U7 Poista tuotetyyppiluettelosta sellaiset tuuotetyypit, joihin ei kuulu yhtään tuotetta. malli
U8 Daisy Duck poistaa tilauksestaan harmaarunkoiset kaapistot (koottu elementti). Kirjaa muutos. Jäljelle jäävien elementtien järjestysnumeroita ei tarvitse muuttaa malli