OUTER JOIN se vanha kunnon kaveri



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

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

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

Liitokset - haut useaan tauluun

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

Kyselyn yleisrakenne:

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

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

CSE-A1200 Tietokannat

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

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

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

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

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

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

SELECT-lauseen perusmuoto

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

Relaation tyhjyyden testaaminen

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

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

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

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

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

SQL - STRUCTURED QUERY LANGUAGE

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

Virta_Latausraportti - Tarkistukset

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

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

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

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

1. Käytä muuttujalle ja literaalille sarakkeen tietomuotoa ja pituutta.

Kuva 7.2 vastaustaulu harjoitukseen 7.2

SQL:N PERUSTEET MARKKU SUNI

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

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

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

Opiskeluoikeuksien maaran tiedonkeruu

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

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

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

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

Ehto- ja toistolauseet

ASTERI-OHJELMIEN SQL-ERIKOISKURSSI LUENTOKALVOT

TAULUKOINTI. Word Taulukot

1. Jaa blini kolmella suoralla a) neljään, b) viiteen, c) kuuteen ja d) seitsemään osaan. Osien ei tarvitse olla samanlaisia. Piirrä suorat kuviin.

Työttömyysvakuutusrahaston palkka- ja palkkioselvitys vuodelta 2015

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

CSE-A1200 Tietokannat

Makrojen mystinen maailma lyhyt oppimäärä

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

Ohjelmoinnin perusteet Y Python

Teht. Pist. Ikä Hyv.

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

Palaute - Koha-Suomi - Support #1510 Tukipyynnöt: Kohan raportit

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

PROVINSSIROCK 2008 PERJANTAI

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

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4);

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

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

Relaatioalgebra. Kyselyt:

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

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Relaatiomalli ja -tietokanta

TIETOKANNAT JOHDANTO

Kansallinen 25 ja 125 tikkaa Turku Järj.TurTi päivitetty klo 8.50

4.3.4 SQL kyselyt... 45

Osallistujat, enorssi seminaari , Helsinki ver

Treenitietokannan suunnitteludokumentti

Varastoalan tutkintotoimikunnan hyväksymät tutkintosuoritusten arvioijat ja heidän yhteystietonsa aakkosjärjestyksessä:

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

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

Standings. Singles Standings - Jatkopelit

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Etelä-Savon maakuntaliitto ASIALISTA No 4/ Maakuntaliiton virasto, Mikonkatu 5, Mikkeli, kokoushuone Piällysmies

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Kunnanhallitukselle on tullut julkiselta kaupanvahvistajalta ilmoitukset seuraavista kiinteistökaupoista:

Vuonna 2015 valvontalautakunnan myöntämät ja peruuttamat apteekkiluvat

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Matematiikan peruskurssi (MATY020) Harjoitus 10 to

AVOIN. Oulu Kuopio Kuopio Somero. Äänekoski Tampere Tampere Liperi. Oulu

Liikkuvanmaalin 10 m putoavan taulun Suomen Veteraaniampujien Mestaruuskilpailut 2015, Pitkäjärvi, Kangasala, sunnuntai

Tietokannat II -kurssin harjoitustyö

Erilaiset oppijat viestinnässä ja kielissä - perusasioita ja hyviä käytänteitä. SeAMK Riihilahti

/18. Liite Virallisen lehden numeroon 55/ Toimittanut eduskuntatiedotus

Liikkuvanmaalin 10 m putoavan taulun Suomen Veteraaniampujien Mestaruuskilpailut 2015, Pitkäjärvi, Kangasala, sunnuntai

CSE-A1200 Tietokannat

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet:

1 Logiikkaa. 1.1 Logiikan symbolit

Reetta Minkkinen

Lihavalmistealan ehdokkaat

Transkriptio:

OUTER JOIN se vanha kunnon kaveri Ulkoliitoksia on kolmenlaisia Left -> vasemmasta taulusta otetaan ehdot täyttävät rivit ja yhdistetään oikeanpuoleiseen tauluun jos rivi löytyy - nested loop join Right -> oikeanpuoleisesta taulusta otetaan ehdot täyttävät rivit ja yhdistetään vasempaan tauluun jos rivi löytyy nested loop join FULL -> otetaan kaikki ehdot täyttävät rivit oikeanpuoleisesta taulusta ja vasemmasta taulusta ja liitetään vastausjoukkojen rivit, molemmista tauluista voi puuttua vastinpari merge scan join Max 225 taulua, inner, full, left ja right sekaisin 1

OUTER JOIN - esimerkki Select l.sar1,..., r.sarx From tleft l left outer join tright r On l.key = r.key and l.sar2= kissa WHERE ehto vasemman, tleft, taulun tietoihin 2

Kenellä on kissa? select nimi, lemmikki, osastonimi, alue from testi.tleft l left outer join testi.tright r on l.osasto = r.osasto WHERE LEMMIKKI = 'KISSA' order by nimi ; ANNELI KISSA ---------- ---------- ERJA KISSA OSTOT LÄNSI KAISA KISSA OSTOT LÄNSI LIISA KISSA ---------- ---------- PEKKA KISSA MYYNNIT ETELÄ RISTO KISSA OSTOT LÄNSI RISTO KISSA MYYNNIT ETELÄ RITVA KISSA OSTOT ETELÄ SARI KISSA MYYNNIT ETELÄ SEPPO KISSA ---------- ---------- SINIKKA KISSA OSTOT LÄNSI TARJA KISSA OSTOT LÄNSI VIKTOR KISSA OSTOT LÄNSI DSNE610I NUMBER OF ROWS DISPLAYED IS 13 3

Kaikki henkilöt, ja osastotiedot niille joilla on kissa select nimi, lemmikki, osastonimi, alue from testi.tleft l left outer join testi.tright r on l.osasto = r.osasto and LEMMIKKI = 'KISSA' order by nimi,osastonimi; NIMI LEMMIKKI OSASTONIMI ALUE ---------+---------+---------+---------+---------+---- ANNELI KISSA ---------- ---------- ERJA KISSA OSTOT LÄNSI HARRI KOIRA ---------- ---------- ILKKA KOIRA ---------- ---------- JAANA KOIRA ---------- ---------- JAANA KOIRA ---------- ---------- JAANA KOIRA ---------- ---------- JORMA KOIRA ---------- ---------- JUHA KOIRA ---------- ---------- KAISA KISSA OSTOT LÄNSI MERJA FRETTI ---------- ---------- PEKKA KISSA MYYNNIT ETELÄ 4

OUTER JOIN - esimerkki kolmas taulu Select l.sar1,..., r.sarx, m.sary From tleft l left outer join tright r On l.key = r.key and l.sar2= kissa Left outer join tmostouter m ON r.key1=m.key1 and r.key2=m.key2 WHERE ehto vasemman, tleft, taulun tietoihin 5

OUTER JOIN huomaa Left join ei where ehtoa oikean puoleiseen tauluun Right join - ei where ehtoa vasemman puoleiseen tauluun Full join ei where ehtoa Jos sääntöä rikkoo on lopputulos innerjoin ja DB2 kirjoittaa lauseen uudelleen sisäliitokseksi Tulee sama väärä vastaus, mutta nopeammin sanoi Bonnie Baker 6

OUTER JOIN suoritusjärjestys: 1. Join ja on-lauseet 2. (group by) 3. Select 4. where 7

FROM tleft l LEFT JOIN tright r ON l.key=r.key WHERE l.nimi like S% Kirjoitetaan uudelleen FROM (SELECT FROM tleft WHERE nimi like S% ) AS l LEFT JOIN tright r ON l.key = r.key 8

Outerjoinin uudelleenkirjoitus Ulkoliitoksessa kirjoitetaan lause uudelleen Liitosjärjestys tehokkaammaksi Oikein kirjoitettu where-ehto nostetaan ylöspäin Väärin kirjoitettu where-ehto -> inner join Lisäksi tapahtuu samoja uudelleenkirjoituksia kuin sisäliitoksessakin Jos a.sar1 = b.sarx ja a.sar1=10 -> b.sarx=10 Join kirjoitetaan alikyselyksi jos tehokkaampi (ja päinvastoin) Taulujen liitosjärjestys 9

ENTÄS JOS ON PAKKO LAITTAA EHTO VÄÄRÄN PUOLEN TAULUUN? Joskus auttaa lisäehto or sar is null Hakupolku? Eikä se aina edes auta, ks. esimerkki 10

Ari Hovin kirjasta Jos on where-ehto vain oikeanpuoleiseen tauluun, tämä ei kaikilla aineistoilla toimi: jos oikeanpuoleisessa taulussa on sarake KUNTA, määritelty null-arvoiseksi jää rivi pois. Ari Hovin kirjan esimerkki: SELECT O.OSTUN, O.OSNIMI, SNIMI, KUNTA FROM OSASTO O LEFT JOIN HENKILO H ON O.OSTUN = H.OSTUN WHERE KUNTA = 'TURKU ORDER BY O.OSTUN, H.SNIMI 11

Ari Hovin kirjasta 2 tästä lauseesta jää pois kaksi osastoa, joissa ei ole ketään Turusta. Talousosasto, kunta 'NULL' ja Markkinointi kunta 'HELSINKI'. RATKAISU: SELECT OS.OSTUN, OS.OSNIMI, H.SNIMI, H.KUNTA FROM OSASTO OS LEFT JOIN (SELECT SNIMI, KUNTA, OSTUN FROM HENKILP WHERE KUNTA = 'TURKU') H ON OS.OSTUN=H.OSTUN ORDER BY OS.OSTUN, H.SNIMI 12