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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 HELIA 1 (72) Luento: SQL Johdanto Sql:ään... 2 Sql-komentojen kirjoittaminen... 3 Backus Naur Form, BNF... 5 Tietojen käsittely (Data Manipulation)... 6 Yksinkertaisia kyselyjä... 7 Distinct-määre... 9 Rivien valinta eli WHERE ehto Lajittelu (Order By) SQL operaatioita ja funktioita Koostefunktiot (Aggregate Functions) Ryhmittely (GROUP BY) HAVING - määre LIITOS eli Monen taulukon kyselyt (JOIN) Karteesinen tulo Ulkoliitos (Outer join) Alikyselyt (subqueries) ANY ja ALL EXISTS ja NOT EXISTS Yhdiste (union), Leikkaus (intersect), Erotus (except) Tietokannan datan muokkaus Lisäys, INSERT Päivitys, UPDATE Poisto, DELETE TIEDON MÄÄRITTELY (Data Definition) Tietotyypit Tietokannan luonti Tietokannan poisto Taulun luonti (Create Table Taulun poistaminen (Drop Table) Näkymän luonti (Create View) Indeksin luonti (Create Index)... 72

2 HELIA 2 (72) Johdanto Sql:ään SQL on ensimmäinen ja ainoa laajasti hyväksytty tietokantakieli ISO:n (International Standards Organization) ja ANSI:n (American National Standards Institute) hyväksymä kieli 1. SQL89 2. SQL92 3. SQL99 SQL:ssä on 2 pääkomponenttia: Tiedon määrittelykieli (Data Definition Language = DDL) Tietokantarakenteen määrittelyyn Tiedon käsittelykieli (Data Manipulation Language = DML) Tiedon hakuun ja päivittämiseen SQL:ää voidaan käyttää kahdella tavalla: 1. Interaktiivisesti työasemalta 2. Upotettuna proseduraaliseen kieleen

3 HELIA 3 (72) Sql-komentojen kirjoittaminen SQL-lauseet muodostuvat seuraavista osista: Varatut sanat Kirjoitettava ja käytettävä tiukan säännön mukaan Kirjoitetaan yleensä isoilla kijaimilla (pienetkin menevät kääntäjästä läpi) Käyttäjän määrittelemät sanat Yleisesti ottaen voidaan kirjoittaa isoilla tai pienillä kirjaimilla Dataa käsiteltäessä on kirjaimet kirjoitettava isoilla tai pienillä sen mukaan, mitä ne todellisuudessa ovat eli miten ne on talletettu tietokantaan esim. sukunimi = SMITH

4 HELIA 4 (72) Vaikka lauseiden kirjoittaminen on varsin vapaata, suositellaan seuraavien ohjeiden noudattamista: Kukin määre lauseessa (clause) pitäisi alkaa uudelta riviltä kukin määre lauseessa samalla linjalla Esim. SELECT sno, fname, lname,position FROM staff WHERE position = Manager ; jos määre sisältää useita osia, käytetään sisennystä, jotta määreen merkitys tulisi paremmin näkyviin Esim. SELECT sno, fname, lname, position, bno FROM staff WHERE position = Manager ;

5 HELIA 5 (72) Backus Naur Form, BNF SQL-syntaksin kuvauksessa käytetty kuvauskieli: ISOJA KIRJAIMIA käytetään esittämään varattuja sanoja ja ne on kirjoitettava määrämuotoisina Pieniä kirjaimia käytetään ilmaisemaan käyttäjän määrittämiä sanoja Pystyviiva tarkoittaa valintaa vaihtoehtojen välillä; Esim. a b c a tai b tai c Aaltosulut tarkoittavat vaadittua elementtiä; Esim. {a} Hakasulut tarkoittavat vapaavalintaista elementtiä; Esim. [a] Kolme peräkkäistä pistettä (...) tarkoittavat valinnaista toistoa 0 tai useamman kerran; Esim. {a b}[,c...]

6 HELIA 6 (72) Tietojen käsittely (Data Manipulation) DML-käskyt SELECT INSERT UPDATE DELETE tietokannan kysely tiedon lisäys tiedon päivitys tiedon tuhoaminen Literaalit ovat SQL:ssä käytettäviä vakioita Niitä erotetaan tässä kaksi päätyyppiä: Yksinkertaisissa lainausmerkeissä olevat ( ) Ei-numeeriset arvot ilmoitetaan näin, esim. Manager Päivämäärät esim Ilman lainausmerkkejä olevat Numeeriset arvot ilmoitetaan näin, esim. 45

7 HELIA 7 (72) Yksinkertaisia kyselyjä Lauseen SELECT tehtävänä on etsiä ja näyttää tietoa yhdestä tai useammasta tietokannan taulusta Lauseen SELECT yleinen muoto on seuraava: SELECT [DISTINCT ALL] {* [column_expression [AS new_name]] [,...]} FROM table_name [alias] [,...] [WHERE condition] [GROUP BY comlumn_list] [HAVING condition] [ORDER BY column_list] select- lauseen järjestys: FROM WHERE GROUP BY HAVING määräätään taulukot, joita käytetään määrätään ehdon täyttävät rivit ryhmitellään edellinen tulos ryhmien valinta ehdon mukaan SELECT määrätään sarakkeet, jotka valitaan ORDER BY lajittelu

8 HELIA 8 (72) Esim. Kaikki sarakkeet, kaikki rivit. Listaa kaikkien henkilöiden kaikki tiedot. tai SELECT sno, fname, lname, address, tel_no, position, sex, dob, salary, nin, bno FROM staff; SELECT * FROM staff; sno fname lname address tel_no position sex dob salary nin bno SL21 SG37 SG14 SA9 SG5 SL41 John Ann David Mary Susan Julie White Beech Ford Howe Brand Lee Manager Snr Asst Deputy Assistant Manager Assistent M F M F F F B5 B3 B3 B7 B3 B5 Esim. Tietyt sarakkeet, kaikki rivit (vrt. PROJEKTIO) Listaa kaikkien henkilöiden numerot, nimet ja palkat. SELECT sno, fname, lname, salary FROM staff; sno SL21 SG37 SG14 SA9 SG5 SL41 fname John Ann David Mary Susan Julie lname White Beech Ford Howe Brand Lee salary

9 HELIA 9 (72) Distinct-määre DISTINCT sarake ==> valitaan vain yksi rivi yhtä sarakkeen arvoa kohti (dublikaatit jää pois) DISTINCT:N vastakohta on ALL, joka toimii oletuksena. Ei siis tarvitse kirjoittaa. Esim. Hae kaikki vuokrattavien kohteiden numerot, joilla on ollut näyttö ratkaisu 1: SELECT pno FROM viewing; ratkaisu 2: ==> Tulos pno PA14 PG4 PG4 PA14 PG36 SELECT DISTINCT pno ==> Tulos FROM viewing; pno PA14 PG4 PG36

10 HELIA 10 (72) Esim. Lasketut kentät Tuota lista henkilöiden numeroista, nimistä ja palkoista siten, että henkilön palkka tulostetaan kukkausipalkkana SELECT sno, fname, lname, salary/12 FROM staff; sno fname lname col4 SL21 SG37 SG14 SA9 SG5 SL41 John Ann David Mary Susan Julie White Beech Ford Howe Brand Lee tai SELECT sno, fname, lname, salary/12 AS monthly_salary FROM staff; Kentän uusi nimi kerrotaan siis varatun sanan AS jälkeen sno fname lname Monthly_salary SL21 SG37 SG14 SA9 SG5 SL41 John Ann David Mary Susan Julie White Beech Ford Howe Brand Lee

11 HELIA 11 (72) Rivien valinta eli WHERE ehto A) Vertailu (comparison): vertaa lauseketta toiseen vertauluoperaattorit: =, <, >, <=, >= <> (erisuuruus ISO standardi),!= (erisuuruus ei ISO) Esim. Listaa kaikki henkilöt, joiden palkka on suurempi kuin SELECT sno, fname, lname, salary FROM staff WHERE salary > 10000; sno fname lname salary SL21 SG37 SG14 SG5 John Ann David Susan White Beech Ford Brand

12 HELIA 12 (72) B) Loogiset operaattorit: OR, AND, NOT lausekkeen evaluointi vasemmalta oikealla suluissa oleva evaluoidaan ensin operaatoreiden prioriteettijärjestys: NOT, AND ja OR Esim. Tulosta henkilönumerot henkilöiltä, joiden nimi on John White SELECT sno FROM staff WHERE fname = John AND lname = White ; sno SL21

13 HELIA 13 (72) Esim. Listaa sellaisten haarakonttoreiden osoitteet, jotka sijaitsevat Lontoossa tai Glasgow:ssa. SELECT bno, street, area, city, pcode FROM branch WHERE city = London OR city = Glasgow ; Bno Street Area City Pcode B5 B3 B2 22m Deer Rd 163 Main St 56 Clover Dr Sidcup Patrick London Glasgow London SW1 4EH G11 0QX NW10 6EU

14 HELIA 14 (72) C) Arvoväli (range): testaa kuluuko lausekkeen arvo tiettyjen arvojen väliin BETWEEN tai NOT BETWEEN Esim. Listaa sellaisten henkilöiden tiedot, joiden palkka on välillä SELECT sno, fname, lname, position, salary FROM staff WHERE salary BETWEEN AND 30000; sno fname lname position salary SL21 SG5 John Susan White Brand Manager Manager tai SELECT sno, fname, lname, position, salary FROM staff WHERE salary >=20000 AND salary <=30000;

15 HELIA 15 (72) D) Joukko (set membership): testaa kuuluuko lausekkeen arvo johonkin arvojoukkoon IN tai NOT IN Esim. Listaa kaikki managerit ja deputyt. SELECT sno, fname, lname, position FROM staff WHERE position IN ( Manager, Deputy ); sno fname lname position SL21 SG14 SG5 John David Susan White Ford Brand Manager Deputy Manager tai SELECT sno, fname, lname, position FROM staff WHERE position = Manager OR position= Deputy ;

16 HELIA 16 (72) E) Kaava (pattern match): testaa noudattaako merkkijono tiettyä kaavaa LIKE tai NOT LIKE % tarkoitta mitä tahansa merkkijonoa tarkoittaa mitä tahansa merkkiä Esimerkkejä sarake LIKE H% sarake LIKE H---- sarake LIKE %e sarake NOT LIKE H% sarakkeen arvo alkaa H:lla, loput mitä tahansa sarakkeen arvo alkaa H:lla ja sitä pitää seurata 4 merkkiä mikä tahansa merkkijono, jonka pituus on vähintään 1 ja joka päättyy kirjaimeen e sarkkeen arvo ei saa alkaa H:lla sarake 15#% ESCAPE # sarakkeen arvo 15%

17 HELIA 17 (72) Esim. Etsi kaikki henkilöt, joiden osoitekentässä on Glasgow -merkkijono SELECT sno, fname, lname,address FROM staff WHERE address LIKE %Glasgow% ; sno fname lname address SG37 SG14 SG5 Ann David Susan Beech Ford Brand 81 George St,Glasgow PA1 2JR 63 Ashby St, Patrick,Glasgow G11 5 Gt Western Rd,Glasgow G12

18 HELIA 18 (72) F) Tyhjä (Null): testaa onko sarakkeen arvo tyhjä IS NULL tai IS NOT NULL Esim. Etsi sellaisten näyttöjen katsojien numerot, kohteiden numerot ja päivämäärät, joissa ei ole kommentteja SELECT rno, pno, date FROM viewing WHERE comment IS NULL; rno CR56 CR56 pno PG4 PG36 date 26-May Apr-95

19 HELIA 19 (72) PÄIVÄMÄÄRÄSTÄ Päivämäärille on olemassa tyypit Date Timestamp pelkkä päivämäärä päivämäärä ja aika Tiedot talletetaan muodossa yyyy-mm-dd Jos päiväyksestä halutaan saada erikseen esim. vuosi käytetään extract funktiota Esim. SELECT EXTRACT (YEAR FROM date) FROM viewing WHERE comment IS NULL; Samoin toimivat päivä (DAY) ja kuukausi (MONTH)

20 HELIA 20 (72) Lajittelu (Order By) lajittelu perustuu sarakkeiden nimiin ORDER BY -sivulauseeseen liitetään sarakkeiden nimet, joiden mukaan lajitellaan lajittelu voi olla nouseva (ASCENDING, ASC, oletus) tai laskeva (DESCENDING, DESC) Jos lajittelusarakkeita useita, erotetaan ne toisistaan pilkulla Esim. Listaa henkilöstö aakkosjärjestyksessä nimen mukaan SELECT sno, fname, lname, salary FROM staff ORDER BY lname, fname; sno fname lname salary SG37 SG5 SG14 SA9 SL41 SL21 Ann Susan David Mary Julie John Beech Brand Ford Howe Lee White

21 HELIA 21 (72) Esim. Listaa vuokrattavat huoneiston tyypin mukaisessa järjestyksessä SELECT pno, type, rooms, rent FROM property_for_rent ORDER BY type; Pno Type Rooms Rent PL94 PG4 PG36 PG16 PA14 PG21 Flat Flat Flat Flat House House Esim. Listaa vuokrattavat huoneiston tyypin mukaisessa järjestyksessä siten, että kalleimmat ensin SELECT pno, type, rooms, rent FROM property_for_rent ORDER BY type, rent DESC; Pno Type Rooms Rent PG16 PL94 PG36 PG4 PA14 PG21 Flat Flat Flat Flat House House

22 HELIA 22 (72) SQL operaatioita ja funktioita Katenoi kaksi merkki-, tai bittijonoa Esim. fname lname UPPER LOWER muuttaa pienet kirjaimet suuriksi muuttaa suuret kirjaimet pieniksi CHAR_LENGTH palauttaa merkkijonon pituuden Esim. CHAR_LENGTH( Beech ) palauttaa 5 SUBSTRING POSITION TRIM palauttaa osajonon merkkijonosta Esim. SUBSTRING( Beech FROM 1 to 3) palauttaa merkkijonon Bee palauttaa merkkijonon position toisesta merkkijonosta Esim. POSITION ( ee IN Beech ) palauttaa 2 poistaa merkkijonosta johtavat (LEADING), lopettavat (TRAILING) tai molemmat merkit Esim. TRIM (BOTH * FROM *** Hello World *** ) palauttaa merkkijonon Hello World CAST konvertoi lausekkeen arvon toisen tyyppiseksi Esim. CAST(5E3 AS INTEGER)

23 HELIA 23 (72) CURRENT_DATE palauttaa nykyisen päivämäärän CURRENT_TIME palauttaa nykyisen ajanhetken Esim. CURRENT_TIME(2) palauttaa ajan sadasosasekunnin tarkkuudella CURRENT_TIME_STAMP palauttaa nykyisen päivämäärän ja ajan Esim. CURRENT_TIME_STAMP(0) palauttaa päivämäärän ja ajan sekunnin tarkkuudella EXTRACT palauttaa ajan tai jakson osan Esim. EXTRACT (YEAR FROM staff.dob) CURRENT_USER tai USER SESSION_USER SYSTEM_USER palauttaa nykyisen käyttäjän tunnuksen palauttaa istunnon hallitsijan tunnuksen palauttaa systeemikäyttäjän tunnuksen CASE palauttaa arvon esimerkiksi seuraavasti CASE type WHEN House THEN 1 WHEN Flat THEN 2 ELSE 0 END

24 HELIA 24 (72) Koostefunktiot (Aggregate Functions) ISO:n standardissa määritellään 5 ryhmäfunktiota COUNT: palauttaa valitun sarakkeen arvojen lukumäärän SUM: palauttaa valitun sarakkeen summan AVG: palauttaa valitun sarakkeen arvojen keskiarvon MIN: palauttaa valitun sarakkeen pienimmän arvon MAX: palauttaa valitun sarakkeen suurimman arvon

25 HELIA 25 (72) Esim. Kuinka monen vuokrattavan vuokra on enemmän kuin 350? SELECT COUNT(*) AS Lukumäärä FROM property_for_rent WHERE rent > 350; Lukumäärä 5 Esim. Montako eri vuokrattavaa näytettiin toukokuussa 1995? SELECT COUNT (DISTINCT pno) AS Lukumäärä FROM viewing WHERE date BETWEEN 1-May-95 AND 31-May-95 ; Lukumäärä 2

26 HELIA 26 (72) Esim. Laske kaikkien managerien lukumäärä ja palkkojen summa. SELECT Count (sno) AS lkm, SUM (salary) AS summa FROM staff WHERE position = Manager ; lkm 2 summa Esim. Etsi pienin ja suurin palkka sekä palkkojen keskiarvo. SELECT MIN(salary) AS pienin, MAX(salary) AS suurin, AVG(salary) AS keskiarvo FROM staff; pienin suurin keskiarvo Huomaa, että koostefunktioita käyttäessäsi, et voi tulostaa taulun varsinaisia kenttiä. (Paitsi, jos käytät GROUP BY:ta)

27 HELIA 27 (72) Ryhmittely (GROUP BY) ryhmittelee valitut rivit ja tuottaa jokaisesta ryhmästä yhden rivin SÄÄNTÖ: select-lause voi sisältää niitä sarakkeita, jotka esiintyvät myös GROUP BYmääreessä koostefunktioita vakioita lausekkeen, joka sisältää edellisten kombinaatioita ISO-STANDARDI: jos kahdella rivillä on ryhmittelysarakkeen arvo NULL ==> rivit joutuvat samaan ryhmään

28 HELIA 28 (72) Esim. Laske jokaisen haarakonttorin työntekijät ja palkkojen summa haarakonttoreittain SELECT bno, COUNT (sno) AS lkm, SUM(salary) AS summa FROM sfaff GROUP BY bno; Mitä tapahtuu: ryhmitellään valitut sarakkeet ja rivit bno:n mukaan järjestykseen ==> lasketaan lukumäärä ja summa ryhmittäin bno sno salary COUNT(sno) SUM(salary) B5 SL B5 SL B3 SG B3 SG B3 SG B7 SA ==> bno B5 B3 B7 lkm summa

29 HELIA 29 (72) HAVING - määre asettaa ehdon ryhmien valintaan eli valitaan siis HAVINGehdon täyttävät ryhmät ISO-STANDARDI: sarakkeet, jotka esiintyvät HAVINGehdossa, täytyy esiintyä GROUP BYmääreessä tai olla koostefunktion parametrina Esim. Laske sellaisten haarakonttorien työntekijät ja palkkojen summat, joilla on työntekijöitä enemmän kuin yksi. SELECT bno, COUNT(sno) AS lkm, SUM(salary) AS summa FROM staff GROUP BY bno HAVING COUNT (sno) > 1; bno B5 B3 lkm 2 3 summa

30 HELIA 30 (72) WHERE VS. HAVING HAVING osuutta ei voi käyttää ilman GROUP BY osuutta WHERE osuuteen tulevat ehdot kohdistuvat kuhunkin riviin HAVING osuuden ehdot kohdistuvat ryhmiin ts. millaisia ryhmiä muodostetaan. HAVING osuutta tarvitaan yleensä vain silloin, kun tarvitaan ehtoon joku kooste

31 HELIA 31 (72) LIITOS eli Monen taulukon kyselyt (JOIN) A) JOIN-operaatio Esim: Listaa sellaisten vuorkaajien nimet, joille on näytetty vähintään yksi vuokrattavana oleva kohde. SQL-89: viittaus renterin sarakeeseen rno SELECT r.rno, fname, lname, pno, comment FROM renter r, viewing v WHERE r.rno = v.rno; tauluille annettu aliasnimet: renter = r viewing = v rno fname lname pno comment viittaus renterin sarakeeseen rno ja viewingin sarakkeeseen rno CR76 CR56 CR56 CR56 CR62 John Aline Aline Aline Mary Kay Stewart Stewart Stewart Tregear PG4 PG36 PA14 PG4 PA14 too remote too small no dining room

32 HELIA 32 (72) SQL-92 JOIN OPERAATIOT: SELECT r.rno, fname, lname, pno, comment FROM renter r JOIN viewing v ON r.rno = v.rno; SELECT rno, fname, lname, pno, comment FROM renter JOIN viewing USING rno; SELECT rno, fname, lname, pno, comment FROM renter NATURAL JOIN viewing;

33 HELIA 33 (72) Esim. Listaa jokaisen haarakonttorin työntekijät, joilla on hoidettavanaan vuokrattava kohde. SQL-89: SQL-92: SELECT s.bno, s.sno, fname, lname, pno FROM staff s, property_for_rent p WHERE s.sno = p.sno; SELECT s.bno, s.sno, fname, lname, pno FROM staff s JOIN property_for_rent p ON s.sno=p.sno; SELECT staff.bno, sno, fname, lname, pno FROM staff JOIN property_for_rent USING sno; SELECT staff.bno, sno, fname, lname, pno FROM staff NATURAL JOIN property_for_rent; bno sno fname lname pno B3 B3 B3 B3 B7 B5 SG37 SG37 SG14 SG14 SA9 SL41 Ann Ann David David Mary Julie Beech Beech Ford Ford Howe Lee PG21 PG36 PG4 PG16 PA14 PL94

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

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

36 HELIA 36 (72) SQL-89: vuokrattavana olevat kohteet. SELECT s.bno, s.sno, COUNT (*) as lkm FROM staff s, property_for_rent p WHERE s.sno=p.sno GROUP BY s.bno, s.sno ORDER BY s.bno, s.sno bno B3 B3 B5 B7 sno SG14 SG37 SL41 SA9 lkm SQL-92: SELECT s.bno, s.sno, COUNT (*) as lkm FROM staff s JOIN property_for_rent p ON s.sno=p.sno GROUP BY s.bno, s.sno ORDER BY s.bno, s.sno; SELECT s.bno, sno, COUNT (*) as lkm FROM staff s JOIN property_for_rent USING sno GROUP BY s.bno, sno ORDER by s.bno, sno;

37 HELIA 37 (72) Karteesinen tulo SELECT [DISTINCT ALL] {* column_list } FROM table_name1 CROSS JOIN table_name2; SELECT [DISTINCT ALL] {* column_list } FROM table_name1, table_name2; Liitoksen tuottaminen: 1. Tee ensin karteesinen tulo 2. Jos lauseessa on WHERE-määre, poista kaikki ne rivit jotka eivät toteuta where-ehtoa 3. Jätä vain lauseessa luetellut sarakkeet 4. Jos SELECT DISTINCT on määritelty, poista duplikaatit 5. Jos lause sisältää ORDER BY-määreen, lajittele taulukko

38 HELIA 38 (72) Ulkoliitos (Outer join) Esim. BRANCH PROPERTY_FOR_RENT bno bcity pno pcity B3 B4 B2 Glasgow Bristol London PA14 PL94 PG4 Aberdeen London Glasgow (Sisä)liitos: Esim: Listaa sellaisista haarakonttoreista, jotka sijaitsevat samassa kaupungissa kuin vuokrattana oleva kohde, osastonumero ja kaupunki sekä vuokrattavasta kohteesta kohdenumero ja sijaintikaupunki. SELECT b.bno, b.bcity, p.pno, p.pcity FROM branch b JOIN property_for_rent ON b.bcity = p.pcity; bno bcity pno pcity B3 B2 Glasgow London PG4 PL94 Glasgow London

39 HELIA 39 (72) 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. SELECT b.bno, b.bcity, p.pno, p.pcity FROM branch b LEFT JOIN property_for_rent p ON b.bcity=p.pcity; bno bcity pno pcity B3 B4 B2 Glasgow Bristol London PG4 null PL94 Glasgow null London FROM lauseen VASEMMAN puoleisen taulun kaupungin mukaan tehdään vertailu. Jos oikean puoleisesta ei löydy sopivaa, tulostetaan se sarakkeisiin null.

40 HELIA 40 (72) 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.bno, b.bcity, p.pno, p.pcity FROM branch b RIGHT JOIN property_for_rent p ON b.bcity=p.pcity; bno bcity pno pcity null B3 B2 null Glasgow London PA14 PG4 PL94 Aberdeen Glasgow London FROM lauseen OIKEAN puoleisen taulun kaupungin mukaan tehdään vertailu. Jos vasemman puoleisesta ei löydy sopivaa, tulostetaan sen sarakkeisiin null.

41 HELIA 41 (72) MOLEMMINPUOLEINEN ULKOLIITOS (Full outer join) Esim. Listaa haarakonttorit ja vuokrattavat kohteet, jotka sijaitsevat samassa kaupungissa. Listaa myös sellaiset haarakonttorit, joiden kaupungissa ei ole kohdetta sekä vuokrattavat, joiden kaupungissa ei ole haarakonttoria. SELECT b.bno, b.bcity, p.pno, p.pcity FROM branch1 b FULL JOIN property_for_rent1 p ON b.bcity=p.pcity; bno bcity pno pcity null B3 B4 B2 null Glasgow Bristol London PA14 PG4 null PL94 Aberdeen Glasgow null London Kummalta puolelta tahansa voi sopiva rivi puuttua.

42 HELIA 42 (72) Olennaisesti ulkoliitokset koostuvat kahdesta kyselystä 1. Listaa haarakonttorit ja vuokrattavat kohteet, jotka sijaitsevat samassa kaupungissa. 2. Listaa myös sellaiset vuokrattavat, joiden kaupungissa ei ole haarakonttoria. Voidaan käyttää UNION operaatiota kts. vähän myöhemmin materiaalissa. (SELECT b.bno, b.bcity, p.pno, p.pcity FROM branch b, property_for_rent p WHERE b.bcity = p.pcity) UNION (SELECT,, p.pno, p.pcity FROM branch b, property_for_rent p WHERE p.pcity NOT IN (SELECT b.bcity FROM branch b)) ; Epästandardin mukainen ulkoliitos (Ei toimi Solidissa, eikä saa käyttää kokeessa) Esim. Listaa haarakonttorit ja vuokrattavat kohteet, jotka sijaitsevat samassa kaupungissa. Listaa myös sellaiset vuokrattavat, joiden kaupungissa ei ole haarakonttoria. SELECT b.bno, b.bcity, p.pno, p.pcity FROM branch b, property_for_rent p WHERE + b.bcity = p.pcity ;

43 HELIA 43 (72) Alikyselyt (subqueries) SELECT, INSERT, UPDATE ja DELETE-lauseet voivat sisältää sisäkkäisen SELECT-lauseen sisäkkäisen SELECT_lauseen tulosta käytetään ulkoisessa lauseessa taulukkona/kohteena alikysely ympäröidään suluilla ( ) sääntöjä: 1. ORDER BY-määrettä ei saa käyttää alikyselyssä (ulkoisessa lausessaa kyllä) 2. alikysely voi sisältää vain yhden sarakkeen tai yhden lausekkeen, paitsi silloin kun käytetään EXISTSavainsanaa 3. alikyselyn tulee olla vertailun oikealla puolella

44 HELIA 44 (72) Esim. Listaa henkilöt, jotka ovat töissä 163 Main St sijaitsevassa haarakonttorissa. SELECT sno, fname, lname, position FROM staff WHERE bno = (SELECT bno FROM branch WHERE address= 163 Main St ); sno fname lname position SG37 SG14 SG5 Ann David Susan Beech Ford Brand Snr Asst Deputy Manager Esim. Listaa henkilöt, joiden palkka on korkeampi kuin kaikkien työntekijöiden keskiarvo. SELECT sno, fname, lname, position, salary FROM staff WHERE salary > (SELECT AVG(salary) FROM; staff); sno fname lname position salary SL21 SG14 SG5 John David Susan White Ford Brand Manager Deputy Manager

45 HELIA 45 (72) Jos on alikysely voi palauttaa enemmän kuin yhden rivin, ei voida käyttää >, <, = operaatioita. IN-operaatiota voidaan käyttää. Esim. Listaa vuokrattavat kohteet, joiden vuokrauksen hoitaa henkilöt, jotka työskentelevät 163 Main St :n haarakonttorissa. SELECT pno, street, area, city,pcode, type, rooms, rent FROM property_for_rent WHERE sno IN (SELECT sno FROM staff WHERE bno = (SELECT bno FROM branch WHERE street = 163 Main St )); pno street area city pcode type rooms rent PG4 PG36 PG21 PG16 6 Lawrence St 2 Monor Rd 18 Dale Rd 5 Novar Dr Patrick Hyndlan Hyndlan Glasgow Glasgow Glasgow Glasgow G11 0QX G32 4QX G12 G12 9AX Flat Flat House Flat

46 HELIA 46 (72) ANY ja ALL käytetään alikyselyissä, jotka palauttavat vain yhden sarakkeen arvot ALL: kaikki alikyselyn rivit täyttävät ehdon tai jos alikyselyn tuottama tulos on tyhjä ==>TRUE ANY tai SOME: jos jokin alikysyelyn rivi täyttää ehdon ==> TRUE

47 HELIA 47 (72) Esim. Listaa henkilöt, joiden palkka on suurempi kuin yhdenkään haarakonttorin B3 työntekijän. SELECT sno, fname, lname, position, salary FROM staff WHERE salary > ANY (SELECT salary FROM staff WHERE bno= B3 ); sno fname lname position salary SL21 SG14 SG5 John David Susan White Ford Brand Manager Deputy Manager Esim. Listaa henkilöt, joiden palkka on suurempi kuin jokaisen haarakonttorin B3 työntekijän. SELECT sno, fname, lname, position, salary FROM staff WHERE salary > ALL (SELECT salary FROM staff WHERE bno = B3 ); sno fname lname position salary SL21 John White Manager

48 HELIA 48 (72) EXISTS ja NOT EXISTS EXISTS sopii vain alikyselyn kanssa palauttaa true/false tuloksen Alikyselyssä voi olla miten monta attribuuttia tahansa EXISTS TRUE, jos alikysely tuottaa vähintään yhden rivin EXISTS FALSE, tuloksen jos alikysely tuottaa tyhjän Esim. Listaa kaikki työntekijät, jotka työskentelevät Lontoon haarakonttorissa SELECT sno, fname, lname, position FROM staff s WHERE EXISTS (SELECT * FROM branch b WHERE s.bno = b.bno AND b.city= London ); sno fname lname position SL21 SL41 John Julie White Lee Manager Assistent

49 HELIA 49 (72) Yhdiste (union), Leikkaus (intersect), Erotus (except) voidaan käyttää vain samarakenteisille taulukoille ISO-standardi: operator [ALL] [ CORRESPONDING [ BY {column1 [,...] }]] jos CORRESPONDING BY -määre on lauseessa ==> operaatio tehdään määreen perässä olevien sarakkeiden perusteella jos ALL-määre on lauseessa ==> taataan, että kaikki mahdolliset rivit tulevat mukaan oletuksena kaikki duplikaattirivit poistetaan

50 HELIA 50 (72) Esim. YHDISTE (UNION) Tuota lista alueista, joissa sijaitsee joko haarakonttori tai vuokrattava kohde. (SELECT area FROM branch WHERE area IS NOT NULL) UNION (SELECT area FROM property_for_rent WHERE area IS NOT NULL); area Sidcup Dyce Patrick Leigh Dee Kilburn Hyndland tai (SELECT * FROM branch WHERE area IS NOT NULL) UNION CORRESPONDING BY area (SELECT * FROM property_for_rent WHERE area IS NOT NULL); area Sidcup Dyce Patrick Leigh Dee Kilburn Hyndland

51 HELIA 51 (72) Esim. LEIKKAUS (INTERSECT) Tuota lista kaupungeista, joissa sijaitsee sekä haarakonttori että vuokrattava. (SELECT city FROM branch) INTERSECT city Aberdeen Glasgow London (SELECT city FROM property_for_rent); tai (SELECT * FROM branch) INTERSECT CORRESPONDING BY city (SELECT * FROM property_for_rent); city London Aberdeen Glasgow

52 HELIA 52 (72) Esim. EROTUS (EXCEPT) Listaa kaupungit, joissa on haarakonttori, mutta ei ole vuorattavia. (SELECT city FROM branch ) EXCEPT city Bristol (SELECT city FROM property_for_rent); tai (SELECT * FROM branch) EXCEPT CORRESPONDING BY city (SELECT * FROM property_for_rent); city Bristol

53 HELIA 53 (72) Tietokannan datan muokkaus INSERT rivien lisäys taulukkoon UPDATE olemassa olevan tiedon päivitys DELETE taulukon rivien poisto Lisäys, INSERT kahdenlaisia lisäyksiä a) sallii yhden rivin lisäämisen nimettyyn tauluun b) useamman rivin kopiointi taulusta toiseen

54 HELIA 54 (72) a) Yhden rivin lisäämisen nimettyyn tauluun INSERT INTO table_name [ (column_list) ] VALUES (data_value_list) table_name: joko perustaulu tai näkymä column_list: yksi tai useampi sarakenimi erotettuna pilkulla vaihtoehtoinen data_value_list: jos puuttuu ==> SQL hakee listan CREATE TABLE kuvauksen mukaan jos puuttuu ==> lisättäviä kenttien arvoja on oltava yhtä monta kuin taululla on olemassa kenttiä jos sarakenimiä on ==> puuttuvat sarakkeet alustetaan oletusarvoilla tai NULL-arvoilla sovelluksen koodiin sarakenimet kannattaa aina laittaa listan täytyy olla samanlainen kuin column_list

55 HELIA 55 (72) arvojen lukumäärä sama järjestys sama arvon kuuluttava ko. sarakkeen arvojoukkoon Esim. Lisää staff-taulukkoon uusi henkilö. INSERT INTO staff VALUES ( SG16, Alan, Brown, 67 Endrick Rd, Glasgow G32 9QX, , Assistent, M, DATE , 8300, WN848391H, B3 );

56 HELIA 56 (72) Esim. Lisää työntekijä, jonka tiedoista tiedetään vain numero, nimi, asema, sukupuoli, palkka ja haarakonttori. INSERT INTO staff (sno, fname, lname, position, sex, salary, bno) VALUES ( SG44, Anne, Jones, Assistent, F, 8300, B3 );

57 HELIA 57 (72) b) useamman rivin kopiointi taulusta toiseen INSERT INTO table_name [ (column_list) ] SELECT... Esim. Oletetaan, että on olemassa relaatio staff_prop-count (sno, fname, lname, prop_cnt) Lisää em. tauluun työntekijät ja heidän hoitamiensa vuokrattavien kohteiden lukumäärät. INSERT INTO staff_prop_count (SELECT s.sno, fname, lname, COUNT (*) FROM staff s, property_for_rent p WHERE s.sno=p.sno GROUP BY s.sno, fname, lname) UNION (SELECT sno, fanme, lname, 0 FROM staff WHERE sno NOT IN (SELECT sno FROM property_for_rent)); sno fname lname prop_cnt SL21 SG37 SG14 SA9 SG5 SL41 John Ann David Mary Susan Julie White Beech Ford Howe Brand Lee

58 HELIA 58 (72) Päivitys, UPDATE UPDATE table_name SET column_name1=data_value1 [,column_name2=data_value2...] [WHERE search_condition]; Jos WHERE-määre esiintyy, päivitetään vain ehdon täyttävät rivit, muuten päivitetään taulukon kaikki rivit Esim. Lisää jokaisen työntekijän palkkaa 3 %:lla. UPDATE staff SET salary = salary * 1.93; Esim. Anna managereille 5 %:n palkankorotus. UPDATE staff SET salary = salary * 1.05 WHERE position = Manager ; Esim. Ylennä David Ford (sno= SG14 ) manageriksi ja vaihda palkka UPDATE staff SET position= Manager, salary=18000 WHERE sno= SG14 ;

59 HELIA 59 (72) Poisto, DELETE DELETE FROM table_name [WHERE search_condition]; Jos WHERE-määre esiintyy, poistetaan vain ehdon täyttävät rivit, muuten poistetaan taulukon kaikki rivit Esim. Poista kaikki kohteelle PG4 tapahtuneet näytöt. DELETE FROM viewing WHERE pno= PG4 ; Esim. Poista kaikki näytöt. DELETE FROM viewing;

60 HELIA 60 (72) TIEDON MÄÄRITTELY (Data Definition) SQL:n TUNNUKSET (SQL Identifiers) Käyttäjän määrittämä tunnus muodostuu merkkijoukosta ISO-standardi hyväksyy seuraavat: Isot kirjaimet (ylärekisteri) A... Z Pienet kirjaimet (alarekisteri) a...z Numerot Alaviiva _ Kun käytetään taulun nimeä tai kenttää, on yhdentekevää kääntäjän kannalta, kirjoitetaanko merkit isolla vai pienellä. (Toisin kuin käytettäessä sarakkeeseen talletettua dataa)

61 HELIA 61 (72) Tietotyypit A) MERKKI/MERKKIJONO CHAR(n) VARCHAR(n) n:n mittainen merkkijono korkeintaan n:n mittainen merkkijono n välillä [0, 255] merkkijono voi 1) kiinteämittainen Esim. sno CHAR (5) 2) vaihtuvamittainen maksimipituus Esim. address VARCHAR (30)

62 HELIA 62 (72) B) BITTI/BITTIJONO BIT [VARYING] [pituus] bittijono voi 1) kiinteämittainen Esim. bit_jono BIT (5) 2) vaihtuvamittainen maksimipituus Esim. bit_jono BIT VARYING (30)

63 HELIA 63 (72) C) TARKKA LUKU DECIMAL[precision [, scale]] INTEGER SMALLINT precision on kentän pituus ja scale on desimaalien lukumäärä kokonaisluku välillä [ , ] kokonaisluku välillä [ , ] Esim. rooms SMALLINT salary DECIMAL (7,2) ==> ylin arvo

64 HELIA 64 (72) D) LIUKULUKU FLOAT liukuluku välillä [ 5.4x10 79, 7.2x10 75 ] Esim. 10E3 5.2E6 0.2E 4

65 HELIA 65 (72) E) AIKA DATE TIME [time_precision] [WITH TIME ZONE] kellonaika: tunti, minuutti ja sekuntti TIMESTAMP [time_precision] [WITH TIME ZONE] kalenteriaika + kellonaika time_precision: sekunttien tarkkuus, oletus 0 eli kokonaiset sekunnit

66 HELIA 66 (72) Tietokannan luonti Vaihtelee tuotteittain CREATE SCHEMA [name AUTHORIZATION creator-identifiter] CREATE DATABASE database_name Esim. CREATE SCHEMA sql_tests AUTHORIZATON Smith;

67 HELIA 67 (72) Tietokannan poisto DROP SCHEMA name [RESTRICT CASCADE] RESTRICT: tietokannan on oltava tyhjä ennen poistoa (oletus) CASCADE: tyhjyystarkistusta ei ole

68 HELIA 68 (72) Taulun luonti (Create Table (CREATE TABLE) CREATE TABLE [omistaja.] taulu ( {sarakenimi tietotyyppi [DEFAULT vakio systeemimuuttuja] [NOT NULL] [[CONSTRAINT rnimi] CHECK(sarake-ehto)] [,...] } [,[CONSTRAINT rnimi] PRIMARY KEY (sarakelista)] {[,[CONSTRAINT rnimi] UNIQUE (sarakelista)] [,...]} {[,[CONSTRAINT rnimi] FOREIGN KEY (sarakelista) REFERENCES [omistaja.]perustaulu[(sarakelista)] [ON UPDATE {CASCADE SET NULL SET DEFAULT NO ACTION } ] CASCADE: automaattinen muutos [ON DELETE {CASCADE SET NULL SET DEFAULT NO ACTION } ] [,...] } { [, [CONSTRAINT rnimi] CHECK (riviehto) ] [,...] } )

69 HELIA 69 (72) Esim. CREATE TABLE property_for_rent ( pno VARCHAR (5) NOT NULL, street VARCHAR (25) NOT NULL, area VARCHAR(15), city VARCHAR(15) NOT NULL, pcode VARCHAR(8), type CHAR(1) NOT NULL DEFAULT F, rooms SMALLINT NOT NULL DEFAULT 4, rent DECIMAL(6,2) NOT NULL DEFAULT 0, ono VARCHAR(5) NOT NULL, sno VARCHAR(5) CONSTRANT staff_not_handling_too_much CHECK (NOT EXISTS (SELECT sno FROM property_for_rent GROUP BY sno HAVING COUNT(*) > 10)), bno VARCHAR(3) NOT NULL, PRIMARY KEY (pno), FOREIGN KEY (sno) REFERENCES staff ON DELETE SET NULL ON UPDATE CASCADE, FOREIGN KEY (ono) REFERENCES owner ON DELETE NO ACTION ON UPDATE CASCADE, FOREIGN KEY (bno) REFERENCES branch ON DELETE NO ACTION ON UPDATE CASCADE);

70 HELIA 70 (72) Taulun poistaminen (Drop Table) (DROP TABLE) DROP TABLE table_name [RESTRICT CASCADE ] RESTRICT: CASCADE: poisto vain silloin, jos tauluun ei viitata mistään muusta taulusta poistetaan myös sellaiset rivit, joissa viitataan poistettuun tauluun Esim. DROP TABLE property_for_rent;

71 HELIA 71 (72) Näkymän luonti (Create View) (CREATE VIEW) Näkymät luodaan perustauluista Näkymä voi kohdistua yhteen tai useampaan tauluun Esim 1 CREATE VIEW pof AS (SELECT pno, street, area city FROM property_for_rent WHERE ono = CO46 ); Esim 2 CREATE VIEW allpersons(nro, etunimi, sukunimi) AS (SELECT sno, fname, lname FROM staff) UNION (SELECT rno, fname, lname FROM renter); Näkymän poisto DROP VIEW allpersons;

72 HELIA 72 (72) Indeksin luonti (Create Index) (CREATE INDEX) hakemistoja voidaan luodan vain perustauluille CREATE [UNIQUE] INDEX index_name ON table_name (column [ASC DESC] [,...]) unique: hakemistoon ei voi laittaa hakemistokenttien duplikaatteja Esim.pääavaimen mukaisen hakemiston luonnissa käytetään UNIQUE-määrettä CREATE UNIQUE INDEX sno_ind ON staff (sno); CREATE UNIQUE INDEX pno_ind ON property_for_rent (pno); CREATE INDEX rent_ind ON property_for_rent (area,rent); Indeksin poistaminen DROP INDEX rent_ind;

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

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin

Lisätiedot

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

HELIA TIKO-05 1 (22) Tieto ja tiedon varastointi E.Räty, O.Virkki 12.10.2006 HELIA TIKO-05 1 (22) SQL / DML SQL / DML...2 Tiedon haku eli -lause...4 Distinct-määre...7 Lasketut sarakkeet...8 Sarakkeen uudelleen nimeäminen...9 SQL:n funktioita... 10 Merkkijonofunktiot... 10 Päivämääräfunktiot...

Lisätiedot

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

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

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

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki 25.10.2006 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

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

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

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho HAAGA-HELIA TIKO - Heti09 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n keskeiset tietotyypit... 8

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 8 XX00AA79-3013 TU12S2 Pasi Ranne 25.9.2013 25/9/13 Helsinki Metropolia University of Applied Sciences 1 Harjoitustyö Harjoitustöiden tilanne

Lisätiedot

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

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)] Tällä viikolla Kertaus SQL-asioista jatketaan SQL-tekstifuntio-harjoituksia tehdään pelifirman tietokannasta ER-malli MySQL:llä, tarkastellaan mallin toimivuutta ja korjataan, jos korjattavaa löytyy, tehdään

Lisätiedot

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

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

3. Taulujen määrittely ja muuttaminen

3. Taulujen määrittely ja muuttaminen 3. Taulujen määrittely ja muuttaminen DDL: Taulujen luonti, muutos ja poisto DML: taulujen tietojen ylläpito Tapahtumien (transaktioiden) hallinta Näkymät, synonyymit ja muut tietokantaobjektit Taulujen

Lisätiedot

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN 3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN DDL: TAULUJEN LUONTI, MUUTOS JA POISTO DML: TAULUJEN TIETOJEN YLLÄPITO TAPAHTUMIEN (TRANSAKTIOIDEN) HALLINTA NÄKYMÄT, SYNONYYMIT JA MUUT TIETOKANTAOBJEKTIT TAULUJEN

Lisätiedot

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

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät

Lisätiedot

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

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa: Funktiot Koostefunktiot Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT-- lukumäärä Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

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

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia Tällä viikolla Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia 1.) Mainitse tietokonepelistä (kuvitteellisesta tai todellisesta) esimerkkitilanteita,

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

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

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli SQL tietokantakieli Relaatiomalliin pohjautuvat tietokannat Perustana relaatiomallin mukainen näkemys tietojen rakenteesta ja käsittelystä Tietokantojen rakenteen määrittelyssä ja käsittelymahdollisuuksissa

Lisätiedot

Kyselyn yleisrakenne:

Kyselyn yleisrakenne: SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

Lisätiedot

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

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta SQL tietokantakieli SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman

Lisätiedot

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

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli tietokantakieli :llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman käyttöön

Lisätiedot

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

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

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 22.3.2016 CSE-A1200 Tietokannat 22.3.2016 1 / 35 Oppimistavoitteet: tämän luennon jälkeen Osaat tehdä SQL:llä kyselyitä, jotka käyttävät hyväkseen toisen kyselyn tuloksia (alikyselyt).

Lisätiedot

Liitokset - haut useaan tauluun

Liitokset - haut useaan tauluun Liitokset Liitokset - haut useaan tauluun Tavallisin liitos on valintaliitos ehtona =,!=, yhtäläisyysliitos (=) yleisin (vrt. Inner join) taulut liitetään toisiinsa yleensä avaimilla (perus-

Lisätiedot

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

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta SQL tietokantakieli SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 23.2.2016 CSE-A1200 Tietokannat 23.2.2016 1 / 36 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

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

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely Harjoitustehtävä 1 Puutarha Puutarhatunnus omistaja sijainti Vastuualue puutarhatunnus aluenumero maaperä, kosteus valaistus sijainti vastuutonttu Tonttu Tonttutunnus Istutus istutuspäivä paikka_alueella

Lisätiedot

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

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone varchar(12), PRIMARY KEY (opetunnus) ) ; CREATE

Lisätiedot

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

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

Lisätiedot

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

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

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. DO NOT PRINTTHIS DOCUMENT SQL -valintaehto SQL-valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone varchar(12), PRIMARY KEY (opetunnus)

Lisätiedot

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

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän

Lisätiedot

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

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC; 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,

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

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

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa: FUNKTIOT Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT -- lukumäärä KOOSTEFUNKTIOT Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm

Lisätiedot

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi SQL SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman käyttöön tehdä

Lisätiedot

SQL-kielen perusteet. Tietokantojen perusteet 4.4.2008

SQL-kielen perusteet. Tietokantojen perusteet 4.4.2008 SQL-kielen perusteet Tietokantojen perusteet 4.4.2008 Sisällys Tietokannan käsittely ja ylläpito SQL tiedonmäärittelykielenä Tietokantataulun ja sen osien määrittely SQL tiedonkäsittelykielenä SQL-kysely

Lisätiedot

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); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

Yleinen SQL. Yleinen SQL. SQL:n kehitys

Yleinen SQL. Yleinen SQL. SQL:n kehitys .ppt Yleinen sivu 1 Yleinen :n kehitys sivu 2... kokeiluja 1970 E F Codd: A Relational Model of Data for Large Shared Data Banks - Relational View on Data, relaatioalgebra, normalisointi 1974-79 Berkeley

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 27.3.2018 CS-A1150 Tietokannat 27.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (12) Luento 4.3 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Viite-eheyssäännöt... 5 Arvojoukkoeheyssäännöt... 8 Null-arvoista... 10 Sovelluskohtaiset

Lisätiedot

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

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Tällä viikolla Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Seuraavissa harjoituksissa käytetään tukkukauppa-kantaa. 1. Hae kaikki toimittajat

Lisätiedot

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Agenda Regular Expression - funktiot Case-insensitive Sort Case-insensitive Seach Merge muutokset Tree-walking in 10g DML Returning Values

Lisätiedot

Hohde Consulting 2004

Hohde Consulting 2004 Luento 5: XQuery AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XQuery XQuery uudet funktiot sekvenssit muuttujat Iterointi järjestys suodatus järjestäminen Ehtorakenteet Muita toimintoja www.hohde.com

Lisätiedot

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

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita

Lisätiedot

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

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos Harjoitustehtävän 1 ratkaisu Tonttu( tonttutunnus, nimi) Puutarha( puutarhatunnus, omistaja, sijainti ) Vastuualue ( puutarhatunnus->puutarha, aluenumero, maaperä, kosteus, valaistus, sijainti, vastuutonttu

Lisätiedot

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

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita

Lisätiedot

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

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita

Lisätiedot

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

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Muita tietokantaobjekteja Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Näkymät Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 5 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Tietokannan normalisoinnin

Lisätiedot

Relaation tyhjyyden testaaminen

Relaation tyhjyyden testaaminen Tulostaulun tyhjyyden testaaminen Luettele ne asiakkaat, joilla on sekä talletus että laina -konttorissa. (Leikkaus!) useita mahdollisia toteutustapoja INTERSECT sisäkysely sisäkysely + tulostaulun tyhjyyden

Lisätiedot

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

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO NÄKYMÄT Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

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); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44 CS-A1150 Tietokannat 2.4.2019 CS-A1150 Tietokannat 2.4.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan taulujen (relaatioiden) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

Näkymät ja tiedon suojaus

Näkymät ja tiedon suojaus HELIA TIKO-05 1 (23) Näkymät ja tiedon suojaus Näkymät...2 Eri tyyppisiä relaatioita...2 Taulu - Tallennettu relaatio...2 Tulosrelaatio - Kyselyn tulos...2 Työtaulut - Väliaikaisiksi luodut taulut...2

Lisätiedot

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

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 Luku 4 SQL 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 ITKA204 kevät 2016 1 4.1 Yleistä SQL:stä Structured

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

OpenOffice.org Base 3.1.0

OpenOffice.org Base 3.1.0 OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys

Lisätiedot

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu HELIA 1 (13) Luento 2.9 Tietohakemistot 2 2 Coddin 12 säännöstä RDBMS:lle... 3 Oraclen tietohakemistonäkymät (osa) 4 Yleiset 4 Taulut 4 Säännöt 4 Näkymät 4 Synonyymit 5 Talletetut rutiinit 5 Käyttöoikeudet

Lisätiedot

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

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu HELIA 1 (15) Luento 2.6 Käyttöoikeuksista ja suojauksesta... 2 Suojausten suunnittelu... 3 Käyttäjätunnukset... 4 Tunnuksen luominen... 5 Tunnuksen muuttaminen... 6 Tunnuksen poistaminen... 6 Oikeudet

Lisätiedot

SQL:N PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI SQL:N PERUSTEET MARKKU SUNI Relaatiomallisen tietokannan käsittely Tietojen saanti, talletus ja päivitys tapahtuu SQL-kielellä Yhtä operaatiota sanotaan kyselyksi (query) Kyselyjä voidaan laittaa peräkkäin

Lisätiedot

Makrojen mystinen maailma lyhyt oppimäärä

Makrojen mystinen maailma lyhyt oppimäärä Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio

Lisätiedot

Opiskeluoikeuksien maaran tiedonkeruu

Opiskeluoikeuksien maaran tiedonkeruu Opiskeluoikeuksien maaran tiedonkeruu Määrittely Opinto-oikeuksista tarvitaan seuraavat tiedot: Tieto jokaisesta yksittäisestä opinto-oikeudesta ja kytkentä niistä opinto-oikeuksista jotka ovat samalla

Lisätiedot

Yhdiste, leikkaus, erotus ym.

Yhdiste, leikkaus, erotus ym. Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.

Lisätiedot

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm: 24.3.2003

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm: 24.3.2003 HELIA SQL-harjoituksia 1(1) SQL-HARJOITUKSIA Takkulan taulut Takkulan opiston relaatiotietokannan rakenne on seuraava: OPPILAS oppilasnro etunimi sukunimi syntpvm AINE lahiosoite ainenro postinro kurssikerta

Lisätiedot

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

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi

Lisätiedot

HELIA 1 (15) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tiedonhallinta HELIA 1 (15) Luento Suorituskyvyn optimointi... 2 Tiedonhallintajärjestelmän rakenne... 3 Suunnittele... 4 SQL-komentojen viritys... 5 Tekninen ympäristö... 6 Fyysisen tason ratkaisut... 7 Indeksit...

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA 1 (11) Outi Virkki Tiedonhallinta HELIA 1 (11) Luento Käyttöoikeuksista ja tiedon suojauksesta... 2 Käyttäjätunnukset... 3 Tunnuksen luominen... 4 Oikeudet / Valtuudet... 5 Oikeuksien hallinta SQL:ssa... 6 Suojaustarkkuus?... 7 Roolit...

Lisätiedot

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

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.

Lisätiedot

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

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

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

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu. RATKAISUJA PULMAILMOITUKSIIN ASTERIOHJELMIEN SQLKYSELYISSÄ Virhe kyselyssä: Microsoft Jet tietokantamoduuli ei löydä syötetaulukkoa tai kyselyä Laskut. Varmista, että se on luotu ja että kirjoitit nimen

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39 CS-A1150 Tietokannat 20.2.2018 CS-A1150 Tietokannat 20.2.2018 1 / 39 Oppimistavoitteet: tämän luennon jälkeen Tunnet SQL:n perusteet ja osaat tehdä yksinkertaisia SQL-kyselyitä, esimerkiksi hakea relaatiosta

Lisätiedot

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tällä luennolla Algebralliset tietotyypit Hahmonsovitus (pattern matching) Primitiivirekursio Esimerkkinä binäärinen hakupuu Muistattehan...

Lisätiedot

OUTER JOIN se vanha kunnon kaveri

OUTER JOIN se vanha kunnon kaveri OUTER JOIN se vanha kunnon kaveri Ulkoliitoksia on kolmenlaisia Left -> vasemmasta taulusta otetaan ehdot täyttävät rivit ja yhdistetään oikeanpuoleiseen tauluun jos rivi löytyy - nested loop join Right

Lisätiedot

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); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Kuva 7.2 vastaustaulu harjoitukseen 7.2 Harjoitus 7. Lataa tiedosto http://users.metropolia.fi/~pasitr/opas/ran13b/data/ran13b.zip levylle Z: ja pura se. Kun olet tehnyt kaikki seuraavat 17 tehtävää palauta Tuubiin harjoituksen 7 vastauksena

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Relaatioalgebra. Kyselyt:

Relaatioalgebra. Kyselyt: Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

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

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt: Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra määrittelee operaatiot,

Lisätiedot

RADAR - RANDOM DATA GENERATOR

RADAR - RANDOM DATA GENERATOR YLEISKUVAUS Radar on sovellus, jolla voi luoda näennäisen oikeaa satunnaisdataa testaus-, demo - ja muihin tarkoituksiin. TIEDUSTELUT Juha Levonen 050 372 5797 juha.levonen@kantapeikko.fi Osa datasta generoidaan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

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

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi. Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 4.3.2015, H. Laine Tehtävien mukana jaetaan sql-syntaksin tiivistelmä. Kirjoita kuhunkin erilliseen vastauspaperiin

Lisätiedot

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

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 29.2.2012 (vastauksia) Liitteenä on tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastauspaperiin kurssin

Lisätiedot

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36 TIETOKANTOJEN PERUSTEET, OPETUSMONISTE OSA 2 SQL- TIETOKANNAN RAKENNE JA MÄÄRITTELYT Harri Laine 4.3 SQL TIETOKANTAKIELI... 33 4.3.1 SQL tietokanta... 34 4.3.2 SQL:n kirjoitusasu... 36 4.3.3 SQL määrittelykielenä...

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot