Haaga-Helia Ammattikorkeakoulu

Slides:



Advertisements
Samankaltaiset esitykset
LUMA-viikko 2005 MB8 Kyselyn tulokset. Pellon lukion oppilaille tehtiin kysely kotitalouksien energiankulutuksesta ja sen kustannuksista. Asumismuoto.
Advertisements

Ohjelman perusrakenteet
Relaatiomalli •Ted Codd 1970 •Matemaattinen perusta •Helppo toteuttaa •Helppo omaksua •Käytetyin tietomalli •Muodostaa perustan kurssin myöhemmille asioille.
Tietokanta.
Kökkötraktori-verkkokauppa
Luento 5: Paikkatietokyselyt ja -tietokannat sekä geometrialaskelmat - digitointivirheet ja metatieto SELECT WORLD.COUNTRY, WORLD.POP_2007 FROM WORLD.
Aggregaattifunktiot (1)
4. Jakaumien teoriaa Jos diskreetin satunnaismuuttujan x
JYVÄSKYLÄN YLIOPISTO 2006 Bluetooth-kirjautumismenetelmiä InSitu-järjestelmässä Tietotekniikan kandidaattiseminaari Tuukka Puranen
Pasi Helasuo Työn valvoja Professori Jukka Manner
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ VARTEN.
Perhevapaiden käyttö ja suorat kustannukset yrityksille Sami Napari (Etla) Perhevapaiden kustannukset –seminaari, Helsinki
Työrauha ja haastavat tilanteet
TMA.003 / L3 ( )1 3. Funktioista 3.1. Kuvaus ja funktio Olkoon A ja B ei-tyhjiä joukkoja. Tulojoukon A  B = {(x,y) | x  A, y  B} osajoukko on.
Satakunnan ammattikorkeakoulun Liiketalous Rauman henkilöstön ja Rauman talousalueen yritysten yhteistyön selvittäminen ja kehittäminen Enni Karvinen.
Word – joukkokirjeet ja tarrat
Ohjelman perusrakenteet
TIETO JA TIETOKONEOHJELMA TIETOKONEOHJELMA KÄSITTELEE TIETOJA TIETOJA VOIDAAN KÄSITELLÄ OHJELMASSA VAIN SALLITUILLA MENETELMILLÄ.
Opintoaikojen rajauslaki Vaihe II WinOodin käyttöliittymä muutokset.
Relaatioalgebra (1) Kokoelma relaatioiden käsittelyyn tarkoitettuja operaatioita Operaatiot muuntavat relaatioita uusiksi relaatioiksi Muodostaa perustan.
HAAGA-HELIA ammattikorkeakoulun prosessikuvaukset ja prosessien laatukriteerit 1 Opintojaksoreklamaatio Prosessin nimiKuvaus luotu Opintojaksoreklamaatio.
Erilaiset liitokset FROM-osassa voidaan määritellä relaatio myös erilaisia liitosoperaatioita käyttäen Vasen, oikea ja täysi puoliliitos eli ulkoliitos.
Datan käsittely MySQL SQL, Structured Query Language
Word: tarrat kirjekuoriin
Monikon lisääminen (1) Luetellaan kaikki lisättävän rivin arvot INSERT INTO Asiakas VALUES (4, ’Assi’, ’Asiakas’); Luetellaan vain osa arvoista; muut arvot.
© Antti Tuomisto, 2001 © Jukka Teuhola muokattu 2005 (Tommi Tapanainen) Tietojenkäsittelytieteet, Turun yliopisto Access merkkijonovertailut 
Miksi tämä on vaikeaa? Ilman minkäänlaisia rajoitteita ongelmat ei ole vaikeita ratkaista. Siihen löytyy jopa valmis ”kaava”. Valitettavasti jokaisessa.
Algoritmi-harjoituksia…
Haussa käytettävä tutkinto ja hakeminen Mikäli hakijalla useampi tutkinto, hän voi valita seuraavista parhaan pistemäärän tuottavan vaihtoehdon: a)Ylioppilastutkinto.

8. SQL-99 -kyselykieli: kaavan määrittely, perusrajoitukset ja kyselyt
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Tietokannan normalisointi
Tietokannat –kurssi SQL peruskyselyt
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Sankarit ja sankaruus Venäjällä Makula, kevät 2015 Tavoitteet, suorittaminen ja aikataulu.
6. Relaatioalgebra ja relaatiokalkyyli
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
4.2-Sulautettu SQL Teuhola Sulautettu (embedded) SQL Ohjelmointikielen (ns. isäntäkielen) laajennus ISO-standardi, määritelty kielille Ada,
Aakkosnumeerinen tieto Tarkoittaa kaikkea muuta tietoa paitsi laskentaan tarkoitettuja lukuja Muuttujan tietosisältö on siis tekstitietoa Muuttujan tietotyypiksi.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone.
Visual Basic -ohjelmointi
11. Relaatiotietokannan suunnittelualgoritmit ja lisäriippuvuudet Tällä kurssilla käsitellään kirjan luvusta 11 ainoastaan algoritmi 11.1 häviöttömän liitoksen.
Yleistä Kotisivuja päivitetty Demoryhmät Luentomonisteen ensimmäiset osat Luentokalvot jaossa Demot alkavat maanantaina Selvitä oma demoryhmäsi Tutustu.
Tietokannat Tietotekniikan perusteet Pekka Orponen.
Kontrollirakenteet laajemmin
Karteesinen tulo Huomaa attribuuttien nimien tarkentaminen taulujen nimillä.
Porin Yksikkö / Elektroniikkatuotanto Tanja Jokinen 1ELEP-1210 Elektroniikan peruskurssi ELEP-1210 ELEKTRONIIKAN PERUSKURSSI 5 op Kevät 2006.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
L AAJENNETUN TYÖSSÄOPPIMISEN KOKEILUT AUTO JA LOGISTIIKKA.
MySQL & PostgreSQL Heikki Airaksinen & Janne Richter.
Tietokantapalvelimet Ville Parviainen. Sisältö Yleistä tietokannoista SQL PostgreSQL MySQL MySQL vs. PostgreSQL Linux -työ.
Hakemistot Nopeuttavat hakuoperaatioita Hidastavat päivitysoperaatioita Pääavaimelle luodaan aina indeksi; päävain toimii usein hakukriteerinä Luodaan.
JYVÄSKYLÄN YLIOPISTO 2007 Bluetooth-yhteydenmuodostus InSitu-järjestelmässä Tietotekniikan pro gradu -seminaari Tuukka Puranen
Porin Yksikkö / Elektroniikka Tanja Jokinen 1ELEP-1210 Elektroniikan peruskurssi ELEP-1210 ELEKTRONIIKAN PERUSKURSSI 5 op Kevät 2007 www-sivut:
Kuovi-projekti 2. Väliesittely Projektiorganisaatio Jäsenet: * Antti Hedlund * Juho Kortelainen * Jaana Ojala * Juhana Pikki Tilaaja ja tilaajan.
KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola
© Verkko-oppimisen ja tiedonrakentelun tutkimuskeskus ( Sami Paavola Verkko-oppimisen ja tiedonrakentelun tutkimuskeskus.
SQL ● Structured Query Language ● Standardoitu kieli tietokantakyselyiden tekemiseen – Standardoitu ei tarkoita etteikö olisi useampia versioita, joten.
Tietokantakyselyt.  Tietokantakysely eli osajoukon erottaminen suuremmasta tietokannasta  Esimerkiksi: Suomen kunnat: Oulu Suomen kunnat: yli
SPARQL.
Excelpäälliköintiä Power Query VINKKI SOLUTIONS | MIKAEL AHONEN.
Aakkosnumeerinen tieto
Suodattaminen Valitse suodatustapa Anna hakukriteeri(t) Katso tulos
Ohjelman perusrakenteet
Esityksen transkriptio:

Haaga-Helia Ammattikorkeakoulu Lisää Sql:stä... Haaga-Helia Ammattikorkeakoulu

Esimerkkitietokanta Seuraavissa esimerkeissä käytämme esimerkkinä tietokantaa, jossa on kaksi taulua, joista toiseen on tallennettu tietoja liittyen opiskelijoiden tietoihin ja toiseen opiskelijoiden tenttituloksia, joissa perusavaimena on käytetty sosiaaliturvatunnusta Esimerkkitaulut näyttävät seuraavilta:

Oppilaat

Tentit

ALIKYSELY SELECT etunimi FROM oppilaat WHERE sotu IN (SELECT sotu FROM tentit WHERE arvosana = 3) Tulostaa niiden oppilaiden etunimet, jotka ovat saaneet jostakin tentistä arvosanan 3.

Etunimi Sakari Unto

 alikyselyä tarvitaan, jos ehdossa tarvitaan jonkin toisen kyselyn tulosta (ylempi kysely on riippuvainen alemman kyselyn tuloksesta)  alikyselyä tarvitaan, jos kysely kohdistuu useampaan kuin yhteen relaatioon (liitos on tässä tilanteessa nopeampi)  hakuehdossa on IN, koska alikysely voi tuottaa useita vastauksia  hakuehdossa voi olla myös vertailuoperaattori, jos alikysely tuottaa vain yhden vastauksen

LIITOS (RELAATIOIDEN YHDISTÄMINEN) SELECT Oppilaat.Sukunimi, Tentit.arvosana FROM Oppilaat, Tentit WHERE Oppilaat.sotu=Tentit.sotu ”Haetaan oppilaiden sukunimet ja kyseisten oppilaiden kaikkien tenttien arvosanat”

Tulos… Sukunimi Arvosana Olli 3 Olli 1 Mononen 3 Mononen 2 Kauppinen 1

. liitosta tarvitaan, jos kysely kohdistuu  liitosta tarvitaan, jos kysely kohdistuu useampaan kuin yhteen relaatioon  liitos voidaan tehdä, jos molemmista tauluista löytyy vastaava sarake, joilla taulut voidaan yhdistää  liitosta käytetään aina ensisijaisesti, jos se on vain mahdollista, sillä liitos on nopeampi kuin alikysely

SELECT O.Sukunimi, T.arvosana FROM Oppilaat AS O, Tentit AS T WHERE O.sotu=T.sotu  taulu voidaan nimetä FROM-osassa toiseksi tämän kyselyn ajaksi  jos taulu nimetään uudelleen, sarakenimen edessä on käytettävä ”uutta” taulunimeä

UNION SELECT sukunimi, etunimi FROM Oppilaat WHERE etunimi = ’Venla’ UNION SELECT sukunimi, etunimi FROM Oppilaat WHERE Sukunimi= ’Olli’

Sukunimi Etunimi Leinonen Venla Olli Sakari  yhdistää kahden tai useamman kyselyn tuloksen  SELECT-osa pitää olla samanlainen  karsii pois duplikaatti-vastaukset

FUNKTIOITA COUNT (sarake) tulosrivien lukumäärä AVG (sarake) keskiarvo SUM (sarake) summa MAX (sarake) suurin arvo MIN (sarake) pienin arvo

 funktiot tuottavat vain yhden vastauksen  SELECT-osassa ei voi olla sekä funktioita että yksittäisiä tietoja (ryhmittely on poikkeus)  funktiot huomioivat vain ei NULL-arvot  jos ehdossa täytyy vertailla jotain saraketta funktion tulokseen, funktio täytyy tehdä alikyselynä  funktio ei voi olla WHERE-ehdon jäsenenä EI palkka > AVG(palkka)

SELECT AVG (aloitusvuosi) FROM Oppilaat ”hae keskimääräinen aloitusvuosi” Expr……. 199….

SELECT MAX (Aloitusvuosi) FROM Oppilaat ”hae uusin opiskelija” Expr……. 1999

SELECT. MAX (aloitusvuosi) FROM. Oppilaat WHERE. postinumero IN SELECT MAX (aloitusvuosi) FROM Oppilaat WHERE postinumero IN (SELECT postinumero FROM Oppilaat WHERE postinumero>20000) ”Hae suurin opiskelijan aloitusvuosi opiskelijoilta, jotka asuvat pääkaupunkiseudun ulkopuolella Expr……. 1999

SELECT SUM (arvosana) FROM Tentit WHERE kurssitunnus = ’Kem200’ ”Hae arvosanojen summa Kem200 kurssin tentituloksista” Expr……. 6

SELECT. sukunimi FROM. Oppilaat WHERE. Aloitusvuosi < SELECT sukunimi FROM Oppilaat WHERE Aloitusvuosi < (SELECT AVG(aloitusvuosi) FROM Oppilaat) ”Hae niiden opiskelijoiden sukunimet, jotka ovat viettäneet aikaansa opinahjossa keskimääräistä enemmän” sukunimi Mononen Nenonen

SELECT laitos, AVG (aloitusvuosi) FROM Oppilaat GROUP BY laitos RYHMITTELY SELECT laitos, AVG (aloitusvuosi) FROM Oppilaat GROUP BY laitos ”tulosta kunkin laitoksen aloitusvuosien keskiarvo” laitos Expr……. 1 1997 2 1995 3 1996

. GROUP BY muodostaa annetun sarakkeen  GROUP BY muodostaa annetun sarakkeen mukaan ryhmiä, joista haetaan funktioilla tietoja  SELECT-osassa voi olla vain funktioita ja ryhmittelyn mukainen sarake

SELECT. laitos, AVG (aloitusvuosi) FROM. Oppilaat WHERE SELECT laitos, AVG (aloitusvuosi) FROM Oppilaat WHERE laitos < 3 GROUP BY laitos HAVING COUNT (aloitusvuosi) > 1 ”laitoksennumero ja aloituvuosien keskiarvo niistä laitoksista, joiden laitosnumero on pienempi kuin 3 ja laitoksista on enemmän kuin yksi työntekijä ” Osnumero Expr……. 1 1997 2 1995

 WHERE-osassa rajoitetaan mukaanotettavia rivejä  HAVING-osassa rajoitetaan mukaanotettavia ryhmiä

PÄIVÄMÄÄRIEN KÄSITTELY SELECT kurssitunnus, päivämäärä FROM Tentit WHERE arvosana<2 ”Kurssitunnukset ja tenttipäivät niistä tenteistä, joissa on saatu arvosanoja alle 2:en” Kurssitunnus Päivä Kem300 21.1.1995 Kem555 1.1.1999

SELECT. kurssitunnus, arvosana FROM. Tentit WHERE SELECT kurssitunnus, arvosana FROM Tentit WHERE kurssitunnus=’Kem200’ AND päivämäärä< #06-30-1996# ”tulosta kurssitunnukset ja arvosanat niistä tenttisuorituksista, joiden kurssitunnus on Kem200 ja joiden ´suorituspäivä on aikaisempi kuin 30.6.1996” Kurssitunnus Arvosana Kem200 3

PÄIVÄMÄÄRÄ-FUNKTIOITA Date() meneillään oleva päivä(mm-dd-yy) Year(sarake) päivämäärä-kentän vuosi Month(sarake) päivämäärä-kentän kuukausi Day(sarake) päivämäärä-kentän päivä Näyttää päivämäärästä DatePart(”yyyy”,sarake) vuoden numeron DatePart(”m”,sarake) kuukauden numeron DatePart(”d”,sarake) päivän numeron

Näkymän luominen Näkymä tarkoittaa SQL-kielen avulla määriteltyä kyselyä, jolle on annettu nimi ja joka on tallennettu kantaan (virtuaalitaulu) Näkymän kautta voi myös rajoitetusti päivittää kohdetaulujen dataa. Tämä ei kuitenkaan ole suositeltavaa. Rajoitukset ovat tuotekohtaisia

Näkymän käyttömahdollisuuksia Olennaisen tiedon näyttäminen tauluista Tallennetut näkymät ovat optimoituja SQL-lauseita Valmiilla näkymillä voidaan vähentää käyttäjien tarvetta luoda monimutkaisia SQL-lausekkeita Suojataan varsinaista tietokantaa/rakennetta

Näkymän luonti: Esimerkki CREATE VIEW henkilot AS SELECT t.tnimi, o.osnimi FROM ttekija as t, osasto as o WHERE t.osnumero=o.osnumero Luo näkymän henkilot liitoksena ttekija- ja osasto –tauluista.

KYSELYJEN TEHOKKUUDESTA liitos mieluummin kuin alikysely jos liitostauluja n, ehtoja pitäisi olla vähintään n-1 WHERE – lause määrää liittämisjärjestyksen WHERE – ehdoissa vältettävä aritmeettisia operaatioita WHERE – ehdossa vältä LIKE:a OR tehoton ehdoissa (ei käytä indeksejä) vältä lajittelua (DISTINCT, ORDER BY, GROUP BY) indeksit nopeuttavat hakua

RIVIEN LISÄYS (INSERT) INSERT INTO taulu (sar1, ……., sarn) VALUES (arvo1, ……… , arvon) INSERT INTO ttekija (tnumero, tnimi, osnumero, palkka) VALUES (2000, ’Niemi’, 30, 10000)

INSERT INTO ttekija_historia (tnumero, tnimi, osnumero, palkka) VALUES SELECT tnumero, tnimi, osnumero, palkka FROM ttekija WHERE osnumero = 10

RIVIEN PÄIVITYS (UPDATE) UPDATE taulu SET sar1=arvo1, ……., sarn=arvon [ WHERE ehto UPDATE ttekija SET palkka = 10000 ”päivitä KAIKKIEN työntekijöiden palkaksi 10000”

WHERE nimike = ’suunnittelija’ UPDATE ttekija SET palkka = 15000 WHERE tnimi = ’Niemi’ ”päivitä Niemi-nimisen työntekijän palkaksi 10000” SET palkka = palkka * 1.1 WHERE nimike = ’suunnittelija’ ”päivitä 1.1-kertaiseksi niiden työntekijöiden palkka, joiden nimike on suunnittelija”

RIVIEN POISTAMINEN (DELETE) DELETE * FROM taulu [ WHERE ehto ] DELETE * FROM ttekija ”poista KAIKKI työntekijät”

DELETE * FROM ttekija WHERE tnumero = 3000 ”poista työntekijä, jonka numero on 3000” DELETE * FROM ttekija WHERE palkka < (SELECT AVG(palkka) FROM ttekija) ”poista ne työntekijät, joiden palkka on pienempi kuin keskipalkka”