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

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

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

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

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

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

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

SQL - STRUCTURED QUERY LANGUAGE

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

SELECT-lauseen perusmuoto

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

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

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

Liitokset - haut useaan tauluun

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

Kyselyn yleisrakenne:

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Tietokantojen perusteet, syksy 1999 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

Yhdiste, leikkaus, erotus ym.

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

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

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

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

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

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

CSE-A1200 Tietokannat

Näkymät ja tiedon suojaus

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

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

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

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

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

Relaation tyhjyyden testaaminen

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

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

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

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

CSE-A1200 Tietokannat

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

SQL:N PERUSTEET MARKKU SUNI

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

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

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

Tietokantakurssit / TKTL

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

CSE-A1200 Tietokannat

HELIA 1 (15) Outi Virkki Tiedonhallinta

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

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

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

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

Relaatioalgebra. Kyselyt:

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

Java ja tietokannan käsittely (JDBC)

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

FORD ST _ST_Range_V2_ MY.indd FC1-FC3 27/06/ :24:01

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

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

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

3. Taulujen määrittely ja muuttaminen

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

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

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

TIETOKANNAT JOHDANTO

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

OUTER JOIN se vanha kunnon kaveri

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Relaatiomalli ja -tietokanta

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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

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

Opiskeluoikeuksien maaran tiedonkeruu

17 BUDJETOINTI. Asiakaskohtainen Budjetti Ylläpito-ohjelma. Dafo Versio 10 BUDJETOINTI. Käyttöohje. BudgCust Yleistä

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Tietokannat II -kurssin harjoitustyö

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

D B. Kyselypuut ja ekvivalenssi

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

SQL-kielen perusteet. Tietokantojen perusteet

Transkriptio:

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 kopiointi... 14 Päivitys... 15 Poisto... 17

HELIA TIKO-05 2 (17) Alikyselyt ~ subqueries SELECT, INSERT, UPDATE ja DELETE-lauseet voivat sisältää sisäkkäisen SELECT-lauseen alikysely ympäröidään suluilla ( ) WHERE ehdossa alikyselyn tulee olla vertailun oikealla puolella ORDER BY-määrettä ei saa käyttää alikyselyssä (ulkoisessa lauseessa kyllä) Huom. Alikyselyn voi usein korvata liitoksella. (Liitos on tehokkaampi.)

HELIA TIKO-05 3 (17) Esim. Listaa henkilöt, jotka ovat töissä 163 Main St sijaitsevassa haarakonttorissa. SELECT staffno, fname, lname, oposition FROM staff WHERE brachnno = (SELECT branchno FROM branch WHERE address= 163 Main St ); staffno fname lname oposition SG37 Ann Beech Snr Asst SA9 David Ford Deputy SG5 Susan Brand Manager Vrt. SELECT FROM JOIN WHERE staffno, fname, lname, oposition staff s branch b ON s.brachnno = b. brachnno b.address= 163 Main St ;

HELIA TIKO-05 4 (17) Esim. Listaa henkilöt, joiden palkka on korkeampi kuin kaikkien työntekijöiden palkkojen keskiarvo. SELECT staffno, fname, lname, oposition, salary FROM staff WHERE salary > (SELECT AVG(salary) FROM staff); staffno fname Lname oposition Salary SL21 John White Manager 30000.00 SA9 David Ford Deputy 18000.00 SG5 Susan Brand Manager 24000.00 Huom! Alikysely on ainoa vaihtoehto (ok), kun vertailu tehdään koostefunktion arvoon

HELIA TIKO-05 5 (17) Jos alikysely voi palauttaa useamman kuin yhden rivin, ei voida käyttää >, <, = operaatioita. IN-operaatio ok Esim. Listaa työtekijät, jotka hoitavat jonkun asuntokohteen vuokrausta SELECT staffno, fname, lname FROM staff WHERE staffno IN (SELECT staffno FROM propertyforrent); sno name lname SA9 Mary Howe SA9 David Ford SG37 Ann Beech SL41 Julie Lee Vrt. SELECT staffno, fname, lname FROM staff s JOIN propertyforrent p ON s.staffno = p.staffno; Jälleen JOIN olisi parempi (=tehokkaampi) ratkaisu

HELIA TIKO-05 6 (17) Esim. Listaa vuokrattavat kohteet, joiden vuokrauksen hoitavat henkilöt, jotka työskentelevät 163 Main St :n haarakonttorissa. SELECT FROM WHERE propertyno, street, area, city, postcode, propertytype, rooms, rent propertyforrent staffno IN (SELECT staffno FROM staff WHERE branchno = (SELECT branchno FROM branch WHERE street = 163 Main St )); Proper tyno PG4 Street Area City Post code 6 Lawrence St Proper tytype Room s Rent Patrick Glasgow G11 0QX Flat 3 350 PG36 2 Monor Rd Glasgow G32 4QX Flat 3 375 PG21 18 Dale Rd Hyndlan Glasgow G12 House 5 600 PG16 5 Novar Dr Hyndlan Glasgow G12 9AX Flat 4 450 kysely, jossa alikyselyn alikysely Jälleen JOIN olisi parempi (=tehokkaampi) ratkaisu

HELIA TIKO-05 7 (17) Joukko-operaatiot 1. Yhdiste (union) 2. Leikkaus (intersect) 3. Erotus (except) Relaatioiden A ja B yhdiste sisältää rivit, jotka löytyvät joko A tai B taulusta. Relaatioiden A ja B leikkaus sisältää rivit, jotka löytyvät sekä A että B taulusta. Relaatioiden A ja B erotus sisältää rivit, jotka löytyvät A mutta eivät B taulusta. joukko-operaatoita voidaan käyttää samarakenteisille tulosrelaatioille samanrakenteisissa relaatioissa sarakkeiden lkm on sama sekä sarakkeiden tietotyypit ja pituudet ovat samat setoperator [ALL] [ CORRESPONDING [ BY {column1 [,...] }]] CORRESPONDING BY -määre: operaatio tehdään määreen perässä olevien sarakkeiden perusteella ALL-määre kaikki mahdolliset rivit tulevat mukaan (oletuksena duplikaattirivit poistetaan)

HELIA TIKO-05 8 (17) Yhdiste, unioni ~ union Esim. Tuota lista kaupungeista, joissa sijaitsee joko haarakonttori tai vuokrattava asunto. (SELECT FROM WHERE UNION (SELECT FROM WHERE city branch city IS NOT NULL) city propertyforrent city IS NOT NULL); tai City Glasgow London Aberdeen Bristol (SELECT * FROM branch WHERE city IS NOT NULL) UNION CORRESPONDING BY city (SELECT * FROM propertyrorrent WHERE city IS NOT NULL);

HELIA TIKO-05 9 (17) Leikkaus ~ intersect Esim. Tuota lista kaupungeista, joissa sijaitsee sekä haarakonttori että vuokrattava asunto. (SELECT city FROM branch) INTERSECT (SELECT city FROM propertyforrent); City Glasgow London tai (SELECT * FROM branch) INTERSECT CORRESPONDING BY city (SELECT * FROM propertyforrent);

HELIA TIKO-05 10 (17) Erotus ~ except ~ (Oraclessa poikkeuksellisesti minus) Esim. Listaa kaupungit, joissa on haarakonttori, mutta ei ole vuorattavia asuntoja. (SELECT city FROM branch ) EXCEPT (SELECT city FROM propertyforrent); City Bristol tai (SELECT * FROM branch) EXCEPT CORRESPONDING BY city (SELECT * FROM propertyforrent);

HELIA TIKO-05 11 (17) Tietokannan datan muokkaus INSERT tiedon (rivien) lisäys tauluun UPDATE taulussa olevan tiedon muuttaminen / päivitys DELETE tiedon (rivien) poisto taulusta Lisäys ~ insert kahdenlaisia lisäyksiä: a) yhden rivin lisäämisen nimettyyn tauluun b) useamman rivin kopiointi taulusta toiseen

HELIA TIKO-05 12 (17) Yhden rivin lisääminen INSERT INTO table_name [ (column_list) ] VALUES (data_value_list) ; table_name column_list taulun (tai näkymän) nimi yksi tai useampi sarakenimi pilkulla erotettuna / vapaaehtoinen: jos puuttuu SQL hakee listan CREATE TABLE kuvauksen mukaan lisättäviä arvoja on oltava yhtä monta kuin taululla on kenttiä jos sarakenimiä on puuttuvat sarakkeet alustetaan oletusarvoilla tai NULL-arvoilla data_value_list yhteensopiva column_list:n kanssa: arvojen lukumäärä sama järjestys sama arvon kuuluttava ko. sarakkeen arvojoukkoon sovelluksen koodiin sarakenimet kannattaa aina laittaa

HELIA TIKO-05 13 (17) Esim. Lisää staff-tauluun uusi henkilö. INSERT INTO staff VALUES ( SG16, Alan, Brown, 67 Endrick Rd, Glasgow G32 9QX, 0141-211-3001, Assistent, M,DATE 1957-05-25,8300, WN848391H, B3 ); Esim. Lisää työntekijä, jonka tiedoista tiedetään vain numero, nimi, asema, sukupuoli, palkka ja haarakonttori INSERT INTO staff (staffno, fname, lname, oposition, sex, salary, brachnno) VALUES ( SG44, Anne, Jones, Assistent, F,,8300, B3 );

HELIA TIKO-05 14 (17) Useamman rivin kopiointi 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.staffno, fname, lname, COUNT (*) FROM staff s, propertyforrent p WHERE s.staffno=p.staffno GROUP BY s.staffno, fname, lname) UNION (SELECT staffno, fanme, lname, 0 FROM staff WHERE staffno NOT IN (SELECT staffno FROM propertyforrent)); sno fname lname prop_cnt SG37 Ann Beech 2 SA9 David Ford 2 SG5 Susan Brand 0 SL21 John White 0 SA9 Mary Howe 1 SL41 Julie Lee 1

HELIA TIKO-05 15 (17) Päivitys ~ update UPDATE table_name SET column_name1=data_value1 [,column_name2=data_value2...] [WHERE search_condition]; Jos WHERE-määre, päivitetään vain ehdon täyttävät rivit, muuten päivitetään kaikki rivit Esim. Lisää jokaisen työntekijän palkkaa 3 %:lla. UPDATE staff SET salary = salary * 1.03; Esim. Anna managereille 5 %:n palkankorotus. UPDATE staff SET salary = salary * 1.05 WHERE oposition = Manager ;

HELIA TIKO-05 16 (17) Esim. Ylennä David Ford (staffno= SG14 ) manageriksi ja vaihda palkaksi 18000. UPDATE SET WHERE staff oposition= Manager, salary=18000 staffno= SG14 ;

HELIA TIKO-05 17 (17) Poisto ~ delete DELETE FROM table_name [WHERE search_condition]; Jos WHERE-määre, poistetaan vain ehdon täyttävät rivit, muuten poistetaan kaikki rivit Esim. Poista kaikki asuntokohteen PG4 näytöt. DELETE FROM viewing WHERE propertyno= PG4 ; Esim. Poista kaikki asuntonäytöt. DELETE FROM viewing;