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



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

SQL - STRUCTURED QUERY LANGUAGE

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

SELECT-lauseen perusmuoto

Liitokset - haut useaan tauluun

SQL-KIELEN PERUSTEET

Jouni Huotari & Tapani Äijänen Kalvot perustuvat pääosin Ari Hovin SQL-oppaaseen (Docendo 2004)

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

SQL-KIELEN PERUSTEET

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

Relaation tyhjyyden testaaminen

Kyselyn yleisrakenne:

SQL-KIELEN PERUSTEET

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

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

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

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

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

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

SQL:N PERUSTEET OSIO 03 MARKKU SUNI

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

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Makrojen mystinen maailma lyhyt oppimäärä

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

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

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

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

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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

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

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

SQL-KIELEN PERUSTEET JOUNI HUOTARI KALVOT PERUSTUVAT PÄÄOSIN ARI HOVIN SQL-OPPAASEEN (DOCENDO 2004) 1. VERSIO: TAPANI ÄIJÄNEN

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

Opiskeluoikeuksien maaran tiedonkeruu

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

CSE-A1200 Tietokannat

OUTER JOIN se vanha kunnon kaveri

PHP tehtävä 3 Atte Pekarinen TIKT13A

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

3. Taulujen määrittely ja muuttaminen

Ohjelmoinnin perusteet Y Python

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

TIEA341 Funktio-ohjelmointi 1, kevät 2008

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

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

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

Ohjelmoinnin peruskurssi Y1

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Virta_Latausraportti - Tarkistukset

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

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

Johdatus f90/95 ohjelmointiin. H, R & R luvut 1-3

TIETOKANNAT JOHDANTO

Java-kielen perusteet

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

Kuva 7.2 vastaustaulu harjoitukseen 7.2

Yleinen SQL. Yleinen SQL. SQL:n kehitys

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

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

KÄSITEANALYYSI PROSESSINA JA TARVEANALYYSI

HELIA 1 (14) Outi Virkki Tiedonhallinta

KAAVAT. Sisällysluettelo

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

Käsiteanalyysi prosessina ja tarveanalyysi

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

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

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

Fortran 90/95. + sopii erityisesti numeriikkaan:

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Ohjelmoinnin perusteet Y Python

CSE-A1200 Tietokannat

4.3.4 SQL kyselyt... 45

Funktionimien kuormitus. TIES341 Funktio ohjelmointi 2 Kevät 2006

Muuttujien roolit Kiintoarvo cin >> r;

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

Lisensointikuulumisia - Kustannustehokkuus Oracle lisensoinnissa

2. Käsiteanalyysi ja relaatiomalli

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Kielioppia: toisin kuin Javassa

Luku 3. Listankäsittelyä. 3.1 Listat

FUNKTIOITA. Sisällysluettelo

SPARQL(SPARQL Protocol and RDF Query Language)

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

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

Taulukot. Jukka Harju, Jukka Juslin

Java-kielen perusteet

Preliminäärikoe Pitkä Matematiikka

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

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

CSE-A1200 Tietokannat

Ohjelmoinnin perusteet Y Python

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

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

Transkriptio:

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 FROM henkilo Jouni Huotari 2000-2009 18

KOOSTEFUNKTIOIDEN KÄYTTÖ Koostefunktioita käytetään SELECT-lauseen sarakeluettelossa ja HAVING-lauseessa SELECT MAX(hinta), MIN(hinta) -- suurin ja pienin hinta WHERE-lauseessa koostefunktioita ei voi käyttää (vaan ne on laitettava HAVING-lauseeseen), esim. Haetaan myyjät, joiden myymien tuotteiden hinta yhteensä on yli 5000: SELECT myyja, SUM(hinta) GROUP BY myyja -- tuotteiden hintojen summa -- ryhmittely myyjän mukaan HAVING SUM(hinta) > 5000 DISTINCT-rajaus toimii muissa tuotteissa paitsi Accessissa: SELECT COUNT(DISTINCT city) -- monestako kaupungista FROM authors -- kirjailijoita Jouni Huotari 2000-2009 19

RYHMITTELY - GROUP BY GROUP BY -ehdolla tiedot ryhmitellään jonkin sarakkeen tai sarakkeiden mukaan ryhmiin GROUP BY -ehdon ryhmiin kohdistetaan yleensä jokin summafunktio kaikki SELECT-listan lauseet, joissa ei ole funktiota, on lueteltava GROUP BY lauseessa! Esim. kunkin myyjän tuotteiden hintojen keskiarvo: SELECT myyja, AVG(hinta) GROUP BY myyja Kunkin myyjän myymien tuotteiden määrä SELECT myyja, COUNT(myyja) GROUP BY myyja Jouni Huotari 2000-2009 20

RYHMITTELY - HAVING Sekä HAVING- että WHERE-lauseella voidaan ryhmittelyn tulosta rajata: SELECT myyja, COUNT(*) WHERE tuotehinta > 100 GROUP BY myyja HAVING COUNT(*) >2 -- myös NULL kelpaa -- hae myyjät joilla -- vähintään 3 tuotetta Tulosjoukkoa voidaan siis rajata eri tasoilla: rajataan ensiksi ryhmiteltävä joukko WHERE-lausekkeella tästä syntynyt tulos ryhmitellään GROUP BY -määrittelyllä lopuksi ryhmiteltyä joukkoa voidaan vielä rajata HAVING-lauseella Jouni Huotari 2000-2009 21

MERKKIJONOFUNKTIOITA Merkkitiedon käsittely standardissa merkkijono saadaan funktiolla SUBSTRING(mjono FROM mista FOR pituus) SELECT sukunimi,,, SUBSTRING(etunimi FROM 1 FOR 1),. FROM henkilo monissa tuotteissa on kuitenkin SUBSTR(mjono,mista,mihin) -funktio (Accessissa Mid-funktio), esim.: SELECT sukunimi,,, SUBSTR(etunimi,1,1),. FROM henkilo Tuloksena lista: Aaltonen, M. Muita merkkijonofunktioita: CHAR_LENGTH -- merkkien määrä (Oraclessa LENGTH) UPPER(nimi) -- merkit isoiksi (Accessissa UCase) LOWER(nimi) -- merkit pieniksi (Accessissa LCase) LEFT(nimi, n) -- merkkijono vasemmalta (n merkkiä) RIGHT(nimi, n) -- merkkijono oikealta (n merkkiä) Jouni Huotari 2000-2009 22

VIELÄ MERKKIJONOJEN KÄSITTELYSTÄ Merkkijonojen yhdistäminen (konkatenointi) standardia noudattavat Oracle ja DB2, jossa merkkijonot yhdistetään kahdella pystyviivalla, esim.: SELECT sukunimi ', ' etunimi AS Nimi FROM henkilo MS:n tuotteissa käytetään + -merkkiä ja MySQL:ssä CONCAT-funktiota Tietotyypin muuntaminen: eksplisiittisesti numeerisen ja merkkimuotoisen välillä, esim. ANSI-standardin CAST-funktiolla tai Oraclessa TO_CHAR (n, [format [,lang]]); muutoin implisiittisesti Jouni Huotari 2000-2009 23

MUITA FUNKTIOITA Numerofunktioita ovat mm. desimaalien pyöristysfunktiot ROUND ja FLOOR; ROUNDfunktiolla saadaan luku pyöristettyä kokonaisluvuksi: SELECT ROUND(palkka*1.1,0) AS palkankorotus FROM henkilo NULL-arvon muuttamiseen voidaan käyttää esim. COALESCE-funktiota, jolla NULL muutetaan esim. nollaksi: COALESCE(sarake, 0) Päivämääräfunktiot, ks. Hovi s. 56 65 Tuotekohtaiset maa-asetukset huomioitava ANSI-standardissa CURRENT_DATE: tämä päivä Jouni Huotari 2000-2009 24

SQL:2003-STANDARDIN UUSIA FUNKTIOITA Nk. skalaarifunktiot: LN (), EXP (), POWER (), SQRT (), FLOOR (), CEIL[ING] (), WIDTH_BUCKET() Koostefunktiot: STDDEV_POP (), STDDEV_SAMP (), VAR_POP (), VAR_SAMP () ym. Nk. taulukkofunktiot: RANK () OVER..., DENSE_RANK () OVER..., PERCENT_RANK () OVER..., CUME_DIST () OVER..., ROW_NUMBER () OVER... Muitakin on... Tuotekohtaisista eroista on hyvä yhteenveto: http://troels.arvin.dk/db/rdbms/#functions Jouni Huotari 2000-2009 25

CASE-LAUSE Tarvitaan kun sarakkeen otsikko riippuu sarakkeen arvosta Kaksi syntaksia (sarakenimen kanssa tai ilman) Esimerkiksi haetaan tuotteita ja luokituksia: SELECT tuote_nimi, CASE WHEN hinta < 100 THEN 'edullinen' ELSE 'laatutavara' END AS luokitus Jouni Huotari 2000-2009 26