SQL:N PERUSTEET MARKKU SUNI



Samankaltaiset tiedostot
TIETOKANTOJEN PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI

Yhdiste, leikkaus, erotus ym.

CSE-A1200 Tietokannat

SELECT-lauseen perusmuoto

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

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

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

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

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

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

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

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

SQL - STRUCTURED QUERY LANGUAGE

Liitokset - haut useaan tauluun

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Relaation tyhjyyden testaaminen

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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.

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

Java-kielen perusteet

13. Loogiset operaatiot 13.1

Kuva 7.2 vastaustaulu harjoitukseen 7.2

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

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

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

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

13. Loogiset operaatiot 13.1

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

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 2

Java-kielen perusteita

Kyselyn yleisrakenne:

Ehto- ja toistolauseet

Ohjelmoinnin peruskurssi Y1

Java-kielen perusteet

Relaatioalgebra. Kyselyt:

Ohjelmoinnin perusteet Y Python

Opiskeluoikeuksien maaran tiedonkeruu

Ohjelmoinnin perusteet Y Python

Virta_Latausraportti - Tarkistukset

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

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

Visma Business AddOn Tilauksen synkronointi. Käsikirja

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

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

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

Makrojen mystinen maailma lyhyt oppimäärä

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

Tietokannat II -kurssin harjoitustyö

CSE-A1200 Tietokannat

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

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

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

SQL:N PERUSTEET OSIO 03 MARKKU SUNI

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

useampi ns. avain (tai vertailuavain) esim. opiskelijaa kuvaavassa alkiossa vaikkapa opintopistemäärä tai opiskelijanumero

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

Ohjelmoinnin peruskurssi Y1

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Ehto- ja toistolauseet

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

Ohjelmoinnin perusteet Y Python


Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

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

etunimi, sukunimi ja opiskelijanumero ja näillä

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

CSE-A1200 Tietokannat

Ohjelmoinnin peruskurssi Y1

Syötteen ensimmäisellä rivillä on kokonaisluku n, testien määrä (1 n 10). Tämän jälkeen jokaisella seuraavalla rivillä on kokonaisluku x (0 x 1000).

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Olio-ohjelmointi Syntaksikokoelma

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

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

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

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

4.3. Matemaattinen induktio

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmointi 1 Taulukot ja merkkijonot

Tietokannat II -kurssin harjoitustyö

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

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

OpenOffice.org Base 3.1.0

SAIKA Suomen aineeton pääoma kansallisen talouden ajurina Tulevaisuuden tutkimuskeskus Turun yliopisto

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

SQL-kielen perusteet. Tietokantojen perusteet

Harjoitus 2. Harjoitus 3

Transkriptio:

SQL:N PERUSTEET MARKKU SUNI

Vertailuoperaattorit Vertailuoperaattorit vertailevat lausekkeiden arvoja Vertailu palauttaa jonkin kolmesta arvosta: TRUE Tosi FALSE Falski, väärä NULL Tuntematon JOS vertailuehtona on koodi = 1 JA ainoa koodiarvo on NULL NIIN vertailun tulokseksi tulee NULL. Useimmat SQL-tuotteet muuttavat sen arvoksi FALSE

Vertailuoperaattorit: NULL NULL arvoa voidaan hakea ehdolla IS NULL tai IS NOT NULL. WHERE rahti IS NULL HUOM.: WHERE rahti = NULL palauttaa arvon FALSE (tai null) vertailun tulos on tuntematon

Vertailuoperaattorit: = Haettaessa täsmälleen yhtäsuurta arvoa SELECT osoite, toimipaikka FROM asiakkaat WHERE yritys = Simons bistro ; osoite toimipaikka Vinbæltet 34 Kööpenhamina

Vertailuoperaattorit: = Haettaessa täsmälleen yhtäsuurta arvoa SELECT yritys, osoite, toimipaikka FROM asiakkaat WHERE maa = Tanska ; Yritys osoite toimipaikka Simons bistro Vinbæltet 34 Kööpenhamina Vaffeljernet Smagsløget 45 Århus Voihan niitä rivejä tulla montakin

Vertailuoperaattorit: = Haettaessa täsmälleen yhtäsuurta arvoa SELECT yritys, osoite, toimipaikka FROM asiakkaat WHERE maa = TANSKA ; Voihan olla, ettei rivejä tule ollenkaan TANSKA ei ole samaa kuin Tanska

Vertailuoperaattorit: suurempi kuin Haettaessa suurempaa arvoa SELECT asiakastunnus, toimituspäivämäärä, rahti FROM tilaukset WHERE rahti > 3239.01 ; Asiakas Toimituspäivämäärä rahti Queen Cozinha 01-01-1997 4 008,51 mk Ernst Handel 20-05-1997 3 554,78 mk QUICK-Stop 16-06-1997 4 534,38 mk QUICK-Stop 14-11-1997 3 645,23 mk Ernst Handel 11-05-1998 3 394,17 mk Save-a-lot Markets 15-05-1998 3 738,38 mk

Vertailuoperaattorit: suurempi kuin Haettaessa suurempaa tai yhtäsuurta arvoa SELECT asiakastunnus, toimituspäivämäärä, rahti FROM tilaukset WHERE rahti >= 3239.01 ; Asiakas Toimituspäivämäärä rahti Queen Cozinha 01-01-1997 4 008,51 mk Ernst Handel 20-05-1997 3 554,78 mk QUICK-Stop 16-06-1997 4 534,38 mk QUICK-Stop 14-11-1997 3 645,23 mk Great Lakes Food Market 03-02-1998 3 239,01 mk Ernst Handel 11-05-1998 3 394,17 mk Save-a-lot Markets 15-05-1998 3 738,38 mk

Vertailuoperaattorit: pienempi kuin Haettaessa pienempää tai yhtäsuurta arvoa SELECT asiakastunnus, toimituspäivämäärä, rahti FROM tilaukset WHERE rahti <= 3239.01 ; Niin, ja lukujen ympärillä ei ole sitaatteja

Vertailuoperaattorit: suurempi/pienempi kuin Haettaessa suurempaa/pienempää arvoa SELECT asiakastunnus, rahti, lähetysmaa FROM tilaukset WHERE lähetysmaa > 'Suomi' ; Asiakas rahti Lähetysmaa Chop-suey Chinese 103,41 mk Sveitsi Richter Supermarkt 667,49 mk Sveitsi HILARIÓN-Abastos 368,60 mk Venezuela Rattlesnake Canyon Grocery 217,31 mk USA GROSELLA-Restaurante 298,31 mk Venezuela White Clover Markets 20,52 mk USA Split Rail Beer & Ale 20,43 mk USA

Vertailuoperaattorit: suurempi/pienempi kuin SELECT asiakastunnus, rahti, lähetysmaa FROM tilaukset WHERE lähetysmaa > 'Suomi AND rahti > 1000 ; Asiakas rahti Lähetysmaa Old World Delicatessen 1 159,29 mk USA Seven Seas Imports 1 297,94 mk UK Rattlesnake Canyon Grocery 3 190,28 mk USA Save-a-lot Markets 1 654,34 mk USA Save-a-lot Markets 1 587,11 mk USA Richter Supermarkt 1 045,89 mk Sveitsi Save-a-lot Markets 1 750,41 mk USA Vaffeljernet 1 345,91 mk Tanska

Vertailuoperaattorit: suurempi/pienempi kuin Yleisesti operaattoreita voi käyttää jokaisen tyypin kanssa Operaattorin kummallakin puolella oltava sama tyyppi Vertailun tulos ja tulkinta riippuu tyypistä Luvuilla: suuruusjärjestys Merkkijonoilla: aakkosjärjestys Isot kirjaimet yleensä ennen pieniä kirjaimia TRUE > FALSE noin yleensä

Vertailuoperaattorit: erisuuruus Operaattori <> tai!= tarkoittaa erisuuruutta SELECT xxxxxxxxx FROM ASIAKKAAT WHERE maa <> Suomi ; Muut kuin suomalaiset

MERKKIOPERAATTORIT Merkkioperaattorit on tarkoitettu merkkijonojen vertailuun LIKE rakentaa mallin, jonka mukaiset merkkijonot kelpaavat on tapa yhdistää merkkijonoja konkatenointi

LIKE-operaattorin yhteydessä mallin määrittely merkeillä % mielivaltainen määrä mielivaltaisia merkkejä Microsoftin Access käyttää merkkiä * _ (alaviiva) yksi mielivaltainen merkki Näiden yhdistelmiä voi käyttää: WHERE maa LIKE S% kelpaavat Saksa, Suomi, Sveitsi, jne

LIKE-operaattorin yhteydessä mallin määrittely merkeillä WHERE sopimusnumero LIKE 049% WHERE nimi LIKE BACK% kelpaavat BACKMAN, BACKSTRÖM jne WHERE nimi LIKE %BACK% kelpaavat BACKMAN, BACKSTRÖM, NORBACK jne

_-operaattorin yhteydessä mallin määrittely merkeillä WHERE luokka LIKE 4_ kelpaavat 4A, 4B, 4C jne WHERE lajikoodi LIKE 0_9 WHERE sopimusnumero LIKE 0_9% WHERE etunimi LIKE MA_JA% kelpaavat MAIJA, MARJA -alkuiset nimet

_-operaattorin yhteydessä mallin määrittely merkeillä WHERE etunimi LIKE MA A kelpaavat MAIJA, MAILA, MARJA, jne se EI ole samaa kuin WHERE etunimi LIKE MA%A Kävisi esim. MARJATTA, MARJUKKA

SELECT tilaustunnus, tuotetunnus, yksikköhinta, määrä, alennus, (yksikköhinta*määrä)*(1.0-alennus) AS Myyntihinta FROM tilaustiedot WHERE alennus IS NOT NULL AND alennus >= 0.10 AND yksikköhinta*määrä > 100; Monimutkaista, mutta realistista

Tilaust Tuote Yksikköhinta määrä alennusmyyntihinta 10250 Dried Apples 182,32 mk 35 15,00% 5424,019961 10250 Hot Pepper 72,24 mk 15 15,00% 921,059993 10254 Pâté chinois 82,56 mk 21 15,00% 1473,695989 10258 Chang 65,36 mk 50 20,00% 2614,399990 10258 Anton's Gumbo 73,10 mk 65 20,00% 3801,199985 10260 Tarte au suc 169,42 mk 15 25,00% 1905,975 10260 Outback Lager 51,60 mk 21 25,00% 812,7 10263 Pavlova 59,77 mk 60 25,00% 2689,65 10263 Matjeshering 89,01 mk 60 25,00% 4005,45 10263 Longlife Tofu 34,40 mk 36 25,00% 928,8 10267 Courdavault 189,20 mk 70 15,00% 11257,39992

AND ja OR yhdistävät ehtolausekkeita TRUE AND TRUE TRUE TRUE AND FALSE FALSE FALSE AND TRUE FALSE FALSE AND FALSE FALSE TRUE OR TRUE TRUE TRUE OR FALSE TRUE FALSE OR TRUE TRUE FALSE OR FALSE FALSE

NOT kääntää totuusarvon NOT TRUE FALSE NOT FALSE TRUE Esim.: WHERE lastname NOT LIKE B% Varottava esimerkki Pitää poimia 21 26-vuotiaat WHERE NOT ( ika < 21 ) AND NOT ( ika > 26 )

Varottava esimerkki: Pitää poimia 21 26-vuotiaat WHERE NOT ( ika < 21 ) AND NOT ( ika > 26 ) WHERE NOT ( ika > 21 ) AND NOT ( ika < 26 ) WHERE NOT ( ika < 21 ) OR NOT ( ika > 26 ) WHERE NOT ( ika > 21 ) OR NOT ( ika < 26 ) Mikä tuottaa toivotun tuloksen?

SQL perustuu joukko-operaatioihin UNION palauttaa kahden kyselyn yhdistetyn tuloksen: SELECT yritys FROM asiakkaat WHERE yritys LIKE C% UNION SELECT yritys FROM toimittajat WHERE yritys LIKE C% ; yritys Cactus Comidas para llevar Centro comercial Moctezuma Chop-suey Chinese Comércio Mineiro Consolidated Holdings Cooperativa de Quesos 'Las Cabras'

SQL perustuu joukko-operaatioihin UNION palauttaa kahden kyselyn yhdistetyn tuloksen Lukuunottamatta kaksoisrivejä rivit esiintyvät molemmissa tauluissa tulisivat kahteen kertaan vaan UNION tuo kutakin riviä yhden kappaleen

SQL perustuu joukko-operaatioihin UNION palauttaa kahden kyselyn yhdistetyn tuloksen Lukuunottamatta kaksoisrivejä rivit esiintyvät molemmissa tauluissa tulisivat kahteen kertaan vaan UNION tuo kutakin riviä yhden kappaleen UNION ALL palauttaa kahden kyselyn yhdistetyn tuloksen Myös kaksoisrivit

SQL:n UNIONin suhteen pätee hiukan sama

SQL perustuu joukko-operaatioihin INTERSECT (leikkaus) palauttaa kahden kyselyn yhdistetyn tuloksen: VAIN rivit, jotka löytyvät molemmista kyselyistä Huom.: kyselyistä on eri asia kuin tauluista

SQL perustuu joukko-operaatioihin MINUS (ero) palauttaa kahden kyselyn yhdistetyn tuloksen: VAIN ne ensimmäisen kyselyn rivit, jotka eivät löydy toisesta Tässä siis kyselyjen järjestyksellä on merkitystä

SQL perustuu joukko-operaatioihin Esimerkki: on asiakastaulu ja maksuhäiriötaulu SELECT nimi FROM asiakas UNION SELECT nimi FROM maksuhäiriö; palauttaa kummankin taulun sisällön Ei ehkä kovin käyttökelpoista

SQL perustuu joukko-operaatioihin Esimerkki: on asiakastaulu ja maksuhäiriötaulu SELECT nimi FROM asiakas MINUS SELECT nimi FROM maksuhäiriö; palauttaa asiakkaat, joilla ei ole maksuhäiriöitä Voi olla hyvinkin käyttökelpoista

I am torn between two lovers

I am torn between two lovers BUT I am torn in between IN and BETWEEN

I am torn between two lovers BUT I am torn in between IN and BETWEEN OR ei yleensä ole kovinkaan suositeltava operaattori IN ajaa usein saman asian tehokkaasti IN = joukon jäsenyys jotakin IN ( A, B, C ) jokin IN ( 1, 3, 5, 7 ) Hakee rivit, joilla jokin noista arvoista löytyy IN-lista voi olla varsin pitkäkin, esim. 2000 nimeä rajoittavina tekijöinä: kapasiteetti

I am torn in between IN and BETWEEN SELECT yritys FROM asiakkaat WHERE maa IN ('Norja', 'Ruotsi', 'Suomi', 'Tanska'); Yritys Berglunds snabbköp Folk och fä HB Santé Gourmet Simons bistro Vaffeljernet Wartian Herkku Wilman Kala

I am torn in between IN and BETWEEN Between valitsee kahden rajan välistä WHERE ika >= 21 WHERE ika BETWEEN 21 AND 26 AND ika <= 26 WHERE maa between Saksa and USA BETWEEN-operaattori palauttaa myös raja-arvot BETWEEN on yleensä tehokkaampi kuin AND- pari

Nights in white satin never reaching the end The Moody Blues This is the End The Doors