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

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

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

SQL - STRUCTURED QUERY LANGUAGE

SELECT-lauseen perusmuoto

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

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

Kyselyn yleisrakenne:

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

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

SQL-KIELEN PERUSTEET

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Liitokset - haut useaan tauluun

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

Opiskeluoikeuksien maaran tiedonkeruu

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

Relaation tyhjyyden testaaminen

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

SQL-KIELEN PERUSTEET

SQL:N PERUSTEET OSIO 03 MARKKU SUNI

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

Makrojen mystinen maailma lyhyt oppimäärä

CSE-A1200 Tietokannat

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

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

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

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 TIKO-05 1 (22) Tieto ja tiedon varastointi E.Räty, O.Virkki

SQL-KIELEN PERUSTEET

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

Kuva 7.2 vastaustaulu harjoitukseen 7.2

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

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

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

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

Virta_Latausraportti - Tarkistukset

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

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

KAAVAT. Sisällysluettelo

OUTER JOIN se vanha kunnon kaveri

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

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

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

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

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

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

Tietokannat II -kurssin harjoitustyö

SPARQL(SPARQL Protocol and RDF Query Language)

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

PHP tehtävä 3 Atte Pekarinen TIKT13A

SQL:N PERUSTEET MARKKU SUNI

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

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

TIEA341 Funktio-ohjelmointi 1, kevät 2008

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

Ohjelmoinnin peruskurssi Y1

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

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

3. Taulujen määrittely ja muuttaminen

Ohjelmoinnin perusteet Y Python

TIETOKANTOJEN PERUSTEET MARKKU SUNI

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

Yleinen SQL. Yleinen SQL. SQL:n kehitys

FUNKTIOITA. Sisällysluettelo

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

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

CSE-A1200 Tietokannat

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

Java-kielen perusteet

Näkymät ja tiedon suojaus

Toteutusdokumentti. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

RADAR - RANDOM DATA GENERATOR

Harjoitus 1 -- Ratkaisut

Taulukot. Jukka Harju, Jukka Juslin

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

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

Java-kielen perusteet

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

Excel 2010 ja QlikView. Mihin ja milloin pivot:ia voi käyttää

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

Tilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut

4.3.4 SQL kyselyt... 45

TIETOKANNAT JOHDANTO

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä

Ruokahalu kasvaa syödessä lisää makrokielen herkkuja

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

Luku 3. Listankäsittelyä. 3.1 Listat

Verilogvs. VHDL. Janne Koljonen University of Vaasa

Transkriptio:

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 FROM henkilo S2007 18

Koostefunktioiden käyttö Koostefunktioita käytetään SELECT-lauseen sarakeluettelossa ja HAVING-lauseessa SELECT MAX(hinta), MIN(hinta) -- suurin ja pienin hinta FROM tuote 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) FROM tuote GROUP BY myyja HAVING SUM(hinta) > 5000 -- tuotteiden hintojen summa -- ryhmittely myyjän mukaan DISTINCT-rajaus toimii muissa tuotteissa paitsi Accessissa: SELECT COUNT(DISTINCT city) FROM authors -- monestako kaupungista -- kirjailijoita S2007 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) FROM tuote GROUP BY myyja; Kunkin myyjän myymien tuotteiden määrä SELECT myyja, COUNT(myyja) FROM tuote GROUP BY myyja; S2007 20

Ryhmittely - Having Sekä HAVING- että WHERE-lauseella voidaan ryhmittelyn tulosta rajata: SELECT myyja, COUNT(*) -- myös NULL kelpaa FROM tuote WHERE tuotehinta > 100 GROUP BY myyja HAVING COUNT(*) >2; -- 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 S2007 21

Merkkijonofunktioita Merkkitiedon käsittely standardissa merkkijono saadaaan funktiolla SUBSTRING(mjono FROM mista FOR pituus) 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ä) S2007 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 S2007 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ä S2007 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 S2007 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 FROM tuote S2007 26