2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Samankaltaiset tiedostot
Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

SELECT-lauseen perusmuoto

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL - STRUCTURED QUERY LANGUAGE

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

Tietokannat II -kurssin harjoitustyö

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

CSE-A1200 Tietokannat

Tietokannat II -kurssin harjoitustyö

Liitokset - haut useaan tauluun

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Kyselyn yleisrakenne:

CSE-A1200 Tietokannat

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

HELIA 1 (14) Outi Virkki Tiedonhallinta

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

Relaation tyhjyyden testaaminen

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

OUTER JOIN se vanha kunnon kaveri

Metropolia ammattikorkeakoulu TU00BS : ICT-teknologiaosaaminen Tuntitehtävät 5 Pasi Ranne

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

Vain valitut kentät: SELECT Päivämäärä, Laskutusnimi, [ale mk], Loppusumma FROM Laskuotsikot

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Yhdiste, leikkaus, erotus ym.

HELIA 1 (12) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta

2. Käsiteanalyysi ja relaatiomalli

SQL:N PERUSTEET MARKKU SUNI

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

TIETOJEN TUONTI TIETOKANNASTA + PIVOT-TAULUKON JA OLAP-KUUTION TEKO

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

3. Taulujen määrittely ja muuttaminen

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

HELIA 1 (17) Outi Virkki Tiedonhallinta

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Palaute - Koha-Suomi - Support #1510 Tukipyynnöt: Kohan raportit

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

18 LIITTYMÄT MUIHIN JÄRJESTELMIIN

OpenOffice.org Base 3.1.0

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

SMT / SUOMEN MATKATOIMISTO OY Y-TUNNUS / FO-NUMMER / BUSINESS ID

Käsiteanalyysi prosessina ja tarveanalyysi

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

HELIA TIKO-05 1 (22) Tieto ja tiedon varastointi E.Räty, O.Virkki

SQL:N PERUSTEET MARKKU SUNI

Ohjelmointi 1 Taulukot ja merkkijonot

Opiskeluoikeuksien maaran tiedonkeruu

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Ohjelmointi Palautettavat 10 1 (5) OPPIMISTEHTÄVÄT 10 (opetusviikko 13) merkkijonolista, oliolista

Ohjelmoinnin perusteet Y Python

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Jouni Huotari OLAP-ohjetekstit kopioitu Microsoftin ohjatun OLAP-kuution teko-ohjeesta. Esimerkin kuvaus ja OLAP-määritelmä

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Ohjelmoinnin perusteet Y Python

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Tietokantojen suunnittelu, relaatiokantojen perusteita

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Taulukot. Jukka Harju, Jukka Juslin

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Taulukoiden käsittely Javalla

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Access-kyselyt. Luetteloinnin kehittämispäivä Mia Kujala

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

ASTERI-OHJELMIEN SQL-ERIKOISKURSSI LUENTOKALVOT

Metropolia ammattikorkeakoulu TU00BS : ICT-teknologiaosaaminen Tuntitehtävät 7 Pasi Ranne

Ohjelmointi Tunnilla 1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla

Tietokantakurssit / TKTL

Visma Business AddOn Tilauksen synkronointi. Käsikirja

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

Opus SMS tekstiviestipalvelu

CSE-A1200 Tietokannat

TIETOJENKÄSITTELY/TIETOKANTA Tehtävä C

Ohjelmoinnin perusteet Y Python

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Virta_Latausraportti - Tarkistukset

Transkriptio:

Tällä viikolla Kotitehtävien läpikäynti SQL-harjoituksia, osa 1 Jatketaan Pelifirman tietovaraston suunnittelua: tietotyyppien kertaus, taulun luonti ER-kaavioon, taulun luonti kaavion avulla tietokantaan, kaavion luonti tietokannasta SQL-harjoituksia, osa 2

Seuraavat tehtävät koskevat tietokantaa classicmodels. Eli ennen kyselyiden tekoa aktivoi tuplaklikkaamalla MySQL:sta ensin tietokanta classicmodels. Vastaukset tulee olla SQL-kyselyitä. Sulkeissa on joitain vinkkejä kyselyyn. 1. Saat selville yrityksen "president"-tittelin omaavan työntekijän? SELECT * FROM employees WHERE jobtitle = 'President'; 2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC; 3. Haet työntekijöiden tiedot tittelin mukaan laskevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY jobtitle DESC; 4. Haet kaikki toimistot jotka eivät sijaitse USAssa tai Ranskassa. SELECT * FROM offices WHERE country <> 'USA' AND country <> 'FRANCE'; 5. Haet kaikki tuotteet, joiden ostohinta on 90 ja 100 välillä. (BETWEEN) SELECT * FROM products WHERE buyprice BETWEEN 90 AND 100;

Seuraavat tehtävät koskevat tietokantaa classicmodels. Eli ennen kyselyiden tekoa aktivoi tuplaklikkaamalla MySQL:sta ensin tietokanta classicmodels. Vastaukset tulee olla SQL-kyselyitä. Sulkeissa on joitain vinkkejä kyselyyn. 6. Haet kaikkien asiakkaiden tiedot joille ei ole määritelty osavaltio-tietoa. (NULL) SELECT * FROM customers WHERE ISNULL(state); 7. Selvität mikä on kaikki tuotteiden yhteenlaskettu ostohinta (kenttä buyprice)? SELECT SUM(buyPrice) FROM products; 8. Selvität mikä on kaikkien tuotteiden ostohintojen keskiarvo? SELECT AVG(buyPrice) FROM products; 9. Haet suoritettujen maksujen summat asiakkaittain (GROUP BY, SUM) SELECT customernumber, SUM(amount) FROM payments GROUP BY customernumber; 10. Haet tilausten tuotteiden yhteismäärät per tuote (GROUP BY, SUM) SELECT productcode, SUM(quantityOrdered) FROM orderdetails GROUP BY productcode;

Kyselyiden yhdistäminen, UNION / UNION ALL Sisäkyselyt Tekstinkäsittelyfunktioita: UPPER, LOWER, CONCAT, SUBSTRING, RIGHT, LEFT, LENGTH

Kyselyiden yhdistäminen, UNION / UNION ALL: SELECT city FROM offices UNION SELECT city FROM customers Sisäkyselyt: Kyselyä voi käyttää toisen kyselyn lähteenä tai vaikka WHEREehdossa. WHERE-ehdossa eksakti vertailu (=) yhteen arvoon tai joukkoon (IN): SELECT COUNT(*) FROM (SELECT city FROM offices UNION ALL SELECT city FROM customers) AS temp SELECT * FROM customers WHERE city IN (SELECT city FROM offices WHERE country='uk')

Yhdistä UNION-kyselyllä kaksi SELECT-kyselyä, joissa haetaan kaikki kentät tuotetaululle kun 1) productline='planes' tai 2) productline='ships' SELECT * FROM products WHERE productline='planes UNION SELECT * FROM productswhere productline='ships Miten saat samat vastausrivit kuin edellä yhdellä kyselyllä (ilman UNIONia)? SELECT * FROM products WHERE productline='ships OR productline='planes Montako eri maata on tauluissa customers ja offices? SELECT COUNT(*) FROM (SELECT country FROM offices UNION SELECT country FROM customers) AS temp Hae tilaukset asiakkaalle, jonka nimi on 'Royale Belge : SELECT * FROM orders WHERE customernumber= (SELECT customernumber FROM customers WHERE customername='royale Belge') Hae nimi (customername) niille asiakkaille, joilla on tilauksia statuksella 'Cancelled'. Käytä sisäkyselyä. SELECT customernamefrom customerswhere customernumber IN (SELECT customernumber FROM orders WHERE status='cancelled')

- Yleisimmin käytetyt tietotyypit: - VARCHAR(nn) muuttuvanmittainen merkkijono - CHAR(n) kiinteänmittainen merkkijono - INT kokonaisluku - DATE päivämäärä - Käytetään yo. Tietotyyppejä P12- tietovaraston tauluissa

- Parityöskentelynä luodaan ER-malliin taulut. Kukin pari mallintaa listalta yhden tai kaksi taulua. Taulujen pääavaimet (PK) on määrätty ja lisäksi listalla on joitain viiteavaimia (FK) malliksi. - Yritys (PK yritys_id) - Osasto (PK osasto_id) (FK yritys_id) - Henkilo (PK henkilo_id) (FK osasto_id) - Koulutus (PK koulutus_id) - Koulutus_linkki (FK koulutus_id, henkilo_id) - Kokemus (PK kokemus_id) - Kokemus_linkki (FK kokemus_id, henkilo_id) - Pelit (PK peli_id) (FK osasto_id) - Asiakas (PK asiakas_id) - Toimittaja (PK toimittaja_id) - Osto (PK osto_id) (FK toimittaja_id, osasto_id) - Myynti (PK myynti_id) (FK asiakas_id, peli_id, osasto_id) - Kalenteri (PK pvm_id)

Tekstinkäsittelyfunktioita: UPPER - muuttaa merkit isoiksi (uppercase) SELECT UPPER(customerName) FROM customers LOWER - muuttaa merkit pieniksi (lowercase) SELECT LOWER(customerName) FROM customers SELECT 'Teksti' - palauttaa kirjoitetun tekstin CONCAT - yhdistää tekstimuotoisia kenttiä tai kirjoitettua tekstiä SELECT CONCAT(firstName, ' ', lastname) FROM employees SUBSTRING - merkkijonon haku SELECT SUBSTRING(productname, 5, 8) FROM products RIGHT - hakee kentän oikeanpuoleisia merkkejä n kappaletta SELECT RIGHT(email,4) FROM employees LEFT - hakee kentän vasemmanpuoleisia merkkejä n kappaletta SELECT LEFT(productName,4) FROM products LENGTH - kentän pituus = merkkien määrä SELECT LENGTH(firstName) FROM employees

- Hae products-taulusta kaikki Ferrarit - Hae products-taulusta kaksi kenttää, joissa ensimmäisessä lukee 'Ferrari' ja toisessa 'Classic car'. Hyödynnä edellistä kyselyä. Tulokseen tulee kaksi riviä. - Edellisen tehtävän tulokseen tuli kaksi riviä. Millä yhdellä määreellä saat karsittua tuplarivin pois? - Muodosta yhteen kenttään teksti, jossa ensin tuotteen nimi, sitten kaksoispiste ja lopuksi tuotekuvaus - Sama kuin edellä, mutta muuta tuotenimi isoiksi kirjaimiksi ja tuotekuvaus pieniksi kirjaimiksi - Hae työntekijöiden etunimi ja toiseen kenttään etunimen pituus - Tee kahden kentän kysely, jossa ensimmäisessä lukee "Etunimi" toisessa on työntekijän etunimi - Tee sama kuin edellä, mutta tiedot yhteen kenttään ja välilyönti ennen nimeä - Muodosta "ohjelause peliin": "Valitse ajoneuvo:" ja sitten lista ajoneuvoista. (UNION-kysely) - Hae eri kenttiin työntekijöiden etunimen alkukirjain ja sukunimen alkukirjain - Hae työntekijöiden nimikirjaimet muodossa (esim.) "E.S." eli etunimen alkukirjain ja sukunimen alkukirjain - Hae tuotteen S10_2016 tuotekuvauksesta sana "logos

1.) Lukutehtävä. Kertaa edellisen viikon kotitehtävät ja tämän viikon uudet SQL-asiat tästä kalvosarjasta. Tehtävän suoritusta ei tarvitse merkitä mihinkään. 2.) Laita tekemästäsi omasta SQL-oppaasta kopio GoogleDriveen opettajalle jakoon Ensi viikolla jatkamme kesken jääneitä teksti-funktioharjoituksia tunnilla.