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



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

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

HELIA 1 (72) Räty, Virkki, Kurki Lahtinen Tiedonhallinta

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

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

OUTER JOIN se vanha kunnon kaveri

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

CSE-A1200 Tietokannat

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

Kyselyn yleisrakenne:

SELECT-lauseen perusmuoto

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

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Liitokset - haut useaan tauluun

CSE-A1200 Tietokannat

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

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

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

Yhdiste, leikkaus, erotus ym.

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

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

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

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

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

4.3.4 SQL kyselyt... 45

SQL - STRUCTURED QUERY LANGUAGE

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

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

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Relaatioalgebra. Kyselyt:

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

SQL:N PERUSTEET MARKKU SUNI

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

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Relaation tyhjyyden testaaminen

SQL-kielen perusteet. Tietokantojen perusteet

Makrojen mystinen maailma lyhyt oppimäärä

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

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

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

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

Opiskeluoikeuksien maaran tiedonkeruu

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

TIETOKANTOJEN PERUSTEET MARKKU SUNI

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

5 SQL TIETOKANTAKIELI...33

Näkymät ja tiedon suojaus

4. Kyselyjen käsittely ja optimointi

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet:

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokantakurssit / TKTL

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

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

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

Virta_Latausraportti - Tarkistukset

Kuva 7.2 vastaustaulu harjoitukseen 7.2

HELIA 1 (11) Outi Virkki Tiedonhallinta

D B. Kyselypuut ja ekvivalenssi

ASTERI-OHJELMIEN SQL-ERIKOISKURSSI LUENTOKALVOT

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

TIETOKANNAT JOHDANTO

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

Tietokannat II -kurssin harjoitustyö

TALVIRENKAAT

TIETOKANNAT kevät 2002 Itseopiskeluosio osa 2/3

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Transkriptio:

HELIA TIKO-05 1 (15) SQL / DML 3 Liitos...2 SQL-92:n join operaatio...4 SQL-89:n join operaatio:...5 Karteesinen tulo... 10 Ulkoliitos (Outer join)... 11 Vasemmanpuoleinen ulkoliitos... 12 Oikeanpuoleinen ulkoliitos... 13 Molemminpuoleinen ulkoliitos... 14

HELIA TIKO-05 2 (15) Liitos ~ JOIN, sisäliitos ~ Kysely useammasta (kuin yhdestä) taulusta ~ liitosoperaatiossa yhdistellään kahden relaation rivejä yhdeksi tulostauluksi jonkun ehdon (esim. liitosehdon) mukaan Esim: Liitetään jokainen asunnon näyttörivi asuntoa katsoneen asiakkaan riviin. VIEWING clientno propertyno viewdate comments CR56 PA14 24-MAY-01 too small CR76 PG4 20-APR-01 too --ote CR56 PG4 26-MAY-01 CR62 PA14 14-MAY-01 no dining room CR56 PG36 28-APR-01 CLIENT clientno fname lname telno preftype maxrent CR76 John Kay 0207-774-5632 Flat 425 CR56 Aline Stewart 0141-848-1825 Flat 350 CR74 Mike Ritchie 01475-392178 House 750 CR62 Mary Tregar 01224-196720 Flat 600 CR76 John Kay 0207-774-5632 Flat 425 client no prope rtyno viewdate comments client no CR56 PA14 24-MAY-01 too small CR56 Aline Stewart CR76 PG4 20-APR-01 too --ote CR76 John Kay CR56 PG4 26-MAY-01 CR56 Aline Stewart CR62 PA14 liitosehto (viewing.clientno = client.clientnro) 14-MAY-01 no dining room CR62 Mary CR56 PG36 28-APR-01 CR56 Aline Stewart fname lname telno pref typ e 0141-848-1825 0207-774-5632 0141-848-1825 Tregar 01224-196720 0141-848-1825 max rent Flat 350 Flat 425 Flat 350 Flat 600 Flat 350

HELIA TIKO-05 3 (15) ~ yksi kysely voi sisältää useita liitosoperaatioita ~ SELECT-kyselyssä liitos voidaan määritellä eri tavoin: o SQL92: JOIN ON osalla(tai JOIN USING/NATURAL JOIN -osalla) o SQL89: FROM-osaan liittävät taulut ja WHERE-osaan liitosehto muiden ehtojen joukkoon

HELIA TIKO-05 4 (15) Esim: Listaa sellaisten asiakkaiden nimet, joille on näytetty vähintään yksi vuokrattavana oleva asuntokohde. SQL-92:n join operaatio SELECT FROM JOIN c.clientno, fname, lname, propertyno client c viewing v ON c.clientno = v.clientno; taulun lyhyt aliasnimi clientno fname lname propertyno CR76 John Kay PG4 CR56 Aline Stewart PG36 CR56 Aline Stewart PA14 CR56 Aline Stewart PG4 CR62 Mary Tregear PA14 SELECT FROM JOIN clientno, fname, lname, propertyno client viewing USING (clientno); SELECT clientno, fname, lname, propertyno FROM client NATURAL JOIN viewing;

HELIA TIKO-05 5 (15) SQL-89:n join operaatio: viittaus client-taulun sarakkeeseen clientno SELECT FROM WHERE c.clientno, fname, lname, propertyno client c, viewing v c.clientno = v.clientno; viittaus client-taulun sarakkeeseen clientno ja viewing-taulun sarakkeeseen clientno tauluille annettu lyhyet aliasnimet: client = c viewing = v

HELIA TIKO-05 6 (15) Esim. Listaa jokaisen haarakonttorin työntekijät, joilla on hoidettavanaan vuokrattava asuntokohde. SQL-89: SELECT FROM WHERE s.branchno, s.staffno, fname, lname, pno staff s, propertyforrent p s.staffno = p.staffno; SQL-92: SELECT FROM JOIN s.branchno, s.staffno, fname, lname, pno staff s propertyforrent p ON s.staffno=p.staffno; SELECT FROM JOIN s.branchno, staffno, fname, lname, pno staff s propertyforrent USING (staffno); SELECT s.branchno, staffno, fname, lname, pno FROM staff s NATURAL JOIN propertyforrent; branchno staffno fname lname propertyno B3 SG37 Ann Beech PG21 B3 SG37 Ann Beech PG36 B3 SG14 David Ford PG4 B3 SG14 David Ford PG16 B7 SA9 Mary Howe PA14 B5 SL41 Julie Lee PL94 (pno = propertyno)

HELIA TIKO-05 7 (15) Esim. Listaa jokaisen haarakonttorin työntekijät, joilla on hoidettavanaan vuokrattava kohde listausjärjestys haarakonttoreittain, työntekijöittäin ja kohteittain. SQL-89: SELECT s.branchno, s.staffno, fname, lname, pno FROM staff s, propertyforrent p WHERE s.staffno = p.staffno ORDER BY s.branchno, s.staffno, pno; SQL-92: SELECT s.branchno, s.staffno, fname, lname, pno FROM staff s JOIN propertyforrent p ON s.staffno=p.staffno ORDER BY s.branchno, s.staffno, pno; branchno staffno fname lname propertyno B3 SG14 David Ford PG4 B3 SG14 David Ford PG16 B3 SG37 Ann Beech PG21 B3 SG37 Ann Beech PG36 B5 SL41 Julie Lee PL94 B7 SA9 Mary Howe PA14 (pno = propertyno)

HELIA TIKO-05 8 (15) Esim. Kolmen taulun liitos: Listaa jokaisen haarakonttorin työntekijät, joilla on hoidettavanaan vuokrattava kohde listausjärjestys haarakonttoreittain, työntekijöittäin ja kohteittain. Listaa haarakonttorin lisäksi haarakonttorin kaupunki. SQL-89: SELECT b.branchno, b.city, s.staffno, fname, lname, pno FROM branch b, staff s, propertyforrent p WHERE b.branchno = s.branchno AND s.staffno = p.staffno ORDER BY b.branchno, s.staffno, pno; SQL-92: SELECT b.branchno, b.city, s.staffno, fname, lname, pno FROM branch b JOIN staff s ON b.branchno=s.branchno JOIN propertyforrent p ON s.staffno=p.staffno ORDER BY b.branchno, s.staffno, pno; branchno city staffno fname lname propertyno B3 Glasgow SG14 David Ford PG4 B3 Glasgow SG14 David Ford PG16 B3 Glasgow SG37 Ann Beech PG21 B3 Glasgow SG37 Ann Beech PG36 B5 London SL41 Julie Lee PL94 B7 Aberdeen SA9 Mary Howe PA14 (pno = propertyno)

HELIA TIKO-05 9 (15) Esim: Laske jokaisen haarakonttorin työntekijöittäin vuokrattavana olevat kohteiden lukumäärä. SQL-89: SELECT s.branchno, s.staffno, COUNT (*) as lkm FROM staff s, propertyforrent p WHERE s.staffno=p.staffno GROUP BY s.branchno, s.staffno ORDER BY s.branchno, s.staffno; SQL-92: SELECT s.branchno, s.staffno, COUNT (*) as lkm FROM staff s JOIN propertyforrent p ON s.staffno=p.staffno GROUP BY s.branchno, s.staffno ORDER BY s.branchno, s.staffno; branchno staffno lkm B3 SG14 2 B3 SG37 2 B7 SA9 1 B5 SL41 1

HELIA TIKO-05 10 (15) Karteesinen tulo ~ Ristitulo ~ Taulun jokaisen rivin liittäminen toisen tai useamman taulun jokaiseen riviin SQL-89: SELECT [DISTINCT ALL] {* column_list } FROM table_name1, table_name2; SQL-92: SELECT [DISTINCT ALL] {* column_list } FROM table_name1 CROSS JOIN table_name2; Huom: ei yhdistävää määrettä: WHERE-ehtoa SQL-89:ssä ON-osaa (tms.) SQL-92:ssa! Karteesista tuloa tarvitaan äärimmäisen harvoin; tyypillisesti se on ohjelmoijan virhe, joka saattaa kaataa tietokantapalvelimen!

HELIA TIKO-05 11 (15) Ulkoliitos (Outer join) Esim. BRANCH PROPERTYFORRENT branchno bcity propertyno pcity B3 Glasgow PA14 Aberdeen B4 Bristol PL94 London B2 London PG4 Glasgow Esim: (Sisä)liitos: Listaa sellaisista haarakonttoreista, jotka sijaitsevat samassa kaupungissa kuin vuokrattavana oleva kohde. Listaukseen mukaan haarakonttorista numero ja kaupunki sekä vuokrattavasta kohteesta kohdenumero ja sijaintikaupunki. SELECT FROM JOIN b.branchno, b.bcity, p.propertyno, p.pcity branch b propertyforrent ON b.bcity = p.pcity; branchno bcity propertyno pcity B3 Glasgow PG4 Glasgow B2 London PL94 London

HELIA TIKO-05 12 (15) Vasemmanpuoleinen ulkoliitos ~ left outer join Esim. Listaa haarakonttorit ja vuokrattavat kohteet, jotka sijaitsevat samassa kaupungissa. Listaa myös sellaiset haarakonttorit, joiden kaupungissa ei ole kohdetta. vasemmanpuoleinen taulu SELECT b.branchno, b.bcity, p.propertyno, p.pcity FROM branch b LEFT JOIN propertyforrent p ON b.bcity=p.pcity; branchno bcity propertyno pcity B3 Glasgow PG4 Glasgow B4 Bristol Null Null B2 London PL94 London JOIN -määreen vasemmanpuoleisen taulun kaupungin mukaan tehdään vertailu. Jos oikean puoleisesta ei löydy sopivaa, tulostetaan sen sarakkeisiin null. Ts. JOIN -määreen vasemmanpuoleisesta taulusta otetaan 'kaikki' rivit, vaikkei oikeanpuoleisesta taulusta vastinriviä löytyisikään

HELIA TIKO-05 13 (15) Oikeanpuoleinen ulkoliitos ~ right outer join Esim. Listaa haarakonttorit ja vuokrattavat kohteet, jotka sijaitsevat samassa kaupungissa. Listaa myös sellaiset vuokrattavat kohteet, joiden kaupungissa ei ole haarakonttoria. SELECT b.branchno, b.bcity, p.propertyno, p.pcity FROM branch b RIGHT JOIN propertyforrent p ON b.bcity=p.pcity; oikeanpuoleinen taulu branchno bcity propertyno pcity Null Null PA14 Aberdeen B3 Glasgow PG4 Glasgow B2 London PL94 London JOIN määreen oikeanpuoleisen taulun kaupungin mukaan tehdään vertailu. Jos vasemmanpuoleisesta ei löydy sopivaa, tulostetaan sen sarakkeisiin null. Ts. JOIN -määreen oikeanpuoleisesta taulusta otetaan 'kaikki' rivit, vaikkei vasemman puoleisesta taulusta vastinriviä löytyisikään

HELIA TIKO-05 14 (15) Molemminpuoleinen ulkoliitos ~ full outer join Esim. Listaa haarakonttorit ja vuokrattavat kohteet, jotka sijaitsevat samassa kaupungissa. Listaa myös sellaiset haarakonttorit, joiden kaupungissa ei ole vuokrakohdetta sekä sellaiset vuokrakohteet, joiden kaupungissa ei ole haarakonttoria. SELECT b.branchno, b.bcity, p.propertyno, p.pcity FROM branch b FULL JOIN propertyforrent p ON b.bcity=p.pcity; branchno bcity propertyno pcity Null Null PA14 Aberdeen B3 Glasgow PG4 Glasgow B4 Bristol Null Null B2 London PL94 London Kummalta puolelta tahansa voi vastinrivi puuttua.

HELIA TIKO-05 15 (15) Standardista poikkeavia ulkoliitoksia Esim. Listaa haarakonttorit ja vuokrattavat kohteet, jotka sijaitsevat samassa kaupungissa. Listaa myös sellaiset vuokrakohteet, joiden kaupungissa ei ole haarakonttoria. SELECT b.branchno, b.bcity, p.propertyno, p.pcity FROM branch b, propertyforrent p WHERE b.bcity (+) = p.pcity ;