En lett innføring i foreninger (JOINs) i SQL
|
|
- Emma Jacobsen
- 9 år siden
- Visninger:
Transkript
1 En lett innføring i foreninger (JOINs) i SQL Noen ord om forening (JOIN)! 2 JOINs til gjennomgang! 3 1. INNER JOIN! 3 Eksempel på [INNER] JOIN! 4 NATURAL JOIN! 5 Eksempel på NATURAL JOIN! 5 2. LEFT [OUTER] JOIN! 6 Eksempel på LEFT [OUTER] JOIN! 6 3. RIGHT [OUTER] JOIN! 8 Eksempel på RIGHT [OUTER] JOIN! 8 4. FULL OUTER JOIN! 10 Eksempel på FULL OUTER JOIN! CROSS JOIN! 11 Eksempel på CROSS JOIN! 11 Referanser! 13 Revisjoner av dette dokumentet! 13 Mikael Brevik! Side: 1 av 13
2 Noen ord om forening (JOIN) En forening, eller JOIN som det heter i SQL, er en rasjonell operator på lik linje som utvelgelse av kolonner (projeksjon) eller rader (seleksjon) som skal vises. Det er en operasjon på relasjons-databaser som brukes til å koble sammen to eller flere tabeller i en database - igjennom en felles kolonne. Ofte vil det være primærnøkkelen og fremmednøkkelen som blir brukt som bindeledd, men det er også mulig å forene tabeller med bruk av andre felt. Utover i denne artikkelen kommer jeg til å bruke en rød tråd av eksempler. Det betyr at jeg tar utgangspunkt i de samme tabellene gjennom hele teksten. Disse tabellene ser slik ut (på rasjonell form):! postal_no(zip, place);! person (pid, name, surname, address, zip*); Vi vet at understreket attributter er primærnøkler og de merket med en astriks (*) er fremmednøkler. Zip-feltet person i er valgfritt (NULL). Vi har her en en-til-mange sammenheng. Tabellen postal_no inneholder informasjon over alle postnummer i Norge og ser slik ut: SELECT zip, place FROM postal_no; zip place ASKIM 1815 ASKIM 1816 SKIPTVET 1820 SPYDEBERG rows in set (0.00 sec) Tabellen person inneholder forskjellige personer: SELECT * FROM person; pid name surname zip address Kari Berg 6490 Eideveien 2 Ola Nordmann 7030 E.C. Dahls Gate 3 John Doe NULL NULL Mikael Brevik! Side: 2 av 13
3 JOINs til gjennomgang 1. INNER JOIN og NATURAL JOIN 2. LEFT OUTER JOIN 3. RIGHT OUTER JOIN 4. FULL OUTER JOIN 5. CROSS JOIN (noen kjappe ord) I gjennomgangen vil jeg for JOIN-setningene (1. til 4.) alltid starte med å vise et Venndiagram for å illustrere mengen som vil bli hentet ut med type forening. 1. INNER JOIN INNER JOIN er nok en av de foreningene som kommer til å bli brukt mest. Det er noe som kalles equijoin og betyr rett og slett at man henter ut informasjonen bundet sammen av to felles verdier i en kolonne/attributt. Det som gjør INNER JOIN forskjellig fra noen OUTER JOIN (som LEFT/RIGHT) er at vi henter kun ut de radene (også kalt «tupler») som har verdier i begge de kolonnene som vi forener om. Vi skal se mer på dette i eksemplet. I SQL vil INNER som regel være et valgfritt nøkkelord. Man kan med andre ord sløyfe det og kun skrive JOIN. Mange mener videre at det er god praksis å ha med nøkkelordet for å lettere tolke spørringene når man leser de. Mikael Brevik! Side: 3 av 13
4 Eksempel på [INNER] JOIN Dersom vi nå vil sende ut et brev til personene vi har i databasen vår må vi hente ut en liste av personer med registrert adresse. Som vi vet er zip et NULL felt i person-tabellen, så det er ikke alle personer som har registrert adresse til seg. Vi bruker INNER JOIN med seleksjon for å vise til hvilke felt som skal brukes til å knytte dataen sammen. SELECT * FROM person p INNER JOIN postal_no pn ON p.zip = pn.zip; pid name surname zip address zip place Kari Berg 6490 Eideveien 6490 EIDE 2 Ola Nordmann 7030 E.C. Dahls Gate 7030 TRONDHEIM rows in set (0.00 sec) Vi kan også skrive dette på en alternativ måte. SELECT * FROM person p, postal_no pn WHERE pn.zip = p.zip; pid name surname zip address zip place Kari Berg 6490 Eideveien 6490 EIDE 2 Ola Nordmann 7030 E.C. Dahls Gate 7030 TRONDHEIM rows in set (0.00 sec) Hva som vil skje dersom man ikke bruker seleksjon her vil vi få vite mer om under «5. CROSS JOIN». Om vi husker fra utlistingen av personer ovenfor vet vi at det er 3 innlegg i denne tabellen, mens her er det 2. Vi får ikke listet ut alle poststedene som ikke er bebodd av noen medlemmer i person-tabellen vår, og vi får heller ikke listet ut personer som ikke har noe poststed registrert. Merk videre at vi får skrevet ut kolonnen «zip» to ganger. Dette er en gang for postal_no og en gang for person. Mikael Brevik! Side: 4 av 13
5 NATURAL JOIN NATURAL JOIN er i all basis det samme som en INNER JOIN. Eneste forskjellen er at vi fjerner duplikatkolonner. Som påpekt i slutten av forrige avsnitt vil vi få frem zip-kolonnen to ganger med bruk av INNER JOIN (uten projeksjon). NATURAL JOIN vil skrive ut kun en kolonne for alle par av kolonner med samme navn. Eksempel på NATURAL JOIN SELECT * FROM person NATURAL JOIN postal_no; zip pid name surname address place Kari Berg Eideveien EIDE Ola Nordmann E.C. Dahls Gate TRONDHEIM 2 rows in set (0.00 sec) Vi ser her at ZIP kommer kun ut som en kolonne. Desverre støtter ikke JavaDB NATURAL JOIN. Så da må man supplementere med en projeksjon: SELECT p.zip, pid, name, surname, address, place FROM person p INNER JOIN postal_no pn USING(zip); zip pid name surname address place Kari Berg Eideveien EIDE Ola Nordmann E.C. Dahls Gate TRONDHEIM 2 rows in set (0.00 sec) (Se bort i fra USING() her. Den er brukt for å korte ned SQL-spørringen. USING() kan bli brukt siden begge attributtene har samme navn i disse tabellene. Så det blir en slags snarvei for «ON field = field2») Mikael Brevik! Side: 5 av 13
6 2. LEFT [OUTER] JOIN Nå har vi beveget oss ut på ytterforening. I motsetning til INNER JOIN vil en LEFT OUTER JOIN favorisere en side av tabellene. Det er fortsatt en såkalt «equijoin». Relatert til det eksemplet vi har brukt tidligere vil det bety at vi kan hente ut alle postkodene uavhengig av om de har personer registrert til seg eller ikke - eller motsatt; alle personer uavhengig om de har registrert postkode. Her er OUTER et valgfritt nøkkelord i spørringen. LEFT JOIN er såvidt jeg vet det samme som LEFT OUTER JOIN. Eksempel på LEFT [OUTER] JOIN Nå vil vi bare hente ut en komplett liste av alle personer vi har i databasen. Uavhengig om de har registrert postnummer eller ei. SELECT p.zip, pid, name, surname, address, place FROM person p LEFT JOIN postal_no pn ON pn.zip = p.zip; zip pid name surname address place Kari Berg Eideveien EIDE Ola Nordmann E.C. Dahls Gate TRONDHEIM NULL 3 John Doe NULL NULL 3 rows in set (0.00 sec) Mikael Brevik! Side: 6 av 13
7 Du ser her at tabellen person er den tabellen som står etter FROM-nøkkelordet. Dette gjør den til en venstrestilt tabell, og det er den vi favoriserer ved å bruke LEFT JOIN. Her vil vi altså i motsetning til INNER JOIN også hente ut personene uten registrert postnummer. Mikael Brevik! Side: 7 av 13
8 3. RIGHT [OUTER] JOIN RIGHT OUTER JOIN er i praksis veldig lik LEFT OUTER JOIN. Eneste forskjellen på disse er hvilken side vi vil favorisere. Vi ser fra forrige punkt om LEFT JOIN at det er person som blir favorisert. Dersom jeg bruker RIGHT JOIN, på samme spørring, er det postal-tabellen som blir hovedtabellen. Resultatet vil være en tabell over alle postkoder og tilhørende personer som er registrert. Siden vi ikke grupperer vil vi få flere resultater av samme postkode, da «tuplene» er av forskjellige kombinasjoner (forskjellige personer til samme postkode). Eksempel på RIGHT [OUTER] JOIN Vi vil nå hente ut alle postnummer og personer som er knyttet til disse. SELECT pn.zip, pid, name, surname, address, place FROM person p RIGHT JOIN postal_no pn ON pn.zip = p.zip; zip pid name surname address place NULL NULL NULL NULL HARØY 6488 NULL NULL NULL NULL MYKLEBOST Kari Berg Eideveien EIDE 6493 NULL NULL NULL NULL LYNGSTAD 6494 NULL NULL NULL NULL VEVANG NULL NULL NULL NULL NULL TRONDHEIM Ola Nordmann E.C. Dahls Gate TRONDHEIM NULL NULL NULL NULL NULL TRONDHEIM rows in set (0.01 sec) Mikael Brevik! Side: 8 av 13
9 Som vi ser er det mange steder som ikke har noen personer knyttet til seg og verdiene vises med NULL. Som nevnt i forrige avsnitt vil det komme flere tupler med samme postnummer dersom vi har flere personer knyttet til det samme nummeret. For å illustrere dette legger vil til en person til fra Eide (6490). INSERT INTO person (name, surname, zip, address) VALUES ('Mikael', 'Brevik', 6490, 'Adresseveien 2'); Dersom vi kjører forrige spørring igjen vil vi få ut dette: SELECT pn.zip, pid, name, surname, address, place FROM person p RIGHT JOIN postal_no pn ON pn.zip = p.zip; zip pid name surname address place NULL NULL NULL NULL HARØY 6488 NULL NULL NULL NULL MYKLEBOST Kari Berg Eideveien EIDE Mikael Brevik Adresseveien 2 EIDE 6493 NULL NULL NULL NULL LYNGSTAD 6494 NULL NULL NULL NULL VEVANG NULL NULL NULL NULL NULL TRONDHEIM Ola Nordmann E.C. Dahls Gate TRONDHEIM NULL NULL NULL NULL NULL TRONDHEIM rows in set (0.01 sec) Mikael Brevik! Side: 9 av 13
10 4. FULL OUTER JOIN Siden dette også er en OUTER JOIN kan vi kanskje se for oss hva vi kommer til å få. Dette er en ytterforening som ikke favoriserer noen side. Den kommer til å vise poststeder med og uten personer og personer med og uten poststed. Eksempel på FULL OUTER JOIN SELECT pn.zip, pid, name, surname, address, place FROM person p FULL OUTER JOIN postal_no pn ON pn.zip = p.zip; Nå er det slik at hverken JavaDB eller MySQL støtter FULL OUTER JOIN, så jeg vil ikke få vist eksempel på resultat her. Resultatet ville i vårt eksempel være veldig likt RIGHT JOIN bare med en ekstra tuppel; den uten registrert postnummer. Mikael Brevik! Side: 10 av 13
11 5. CROSS JOIN Denne foreningen er litt anderledes enn de vi har sett på til nå. På norsk kalles dette gjerne kryssprodukt eller kartesisk produkt. Her har vi en forening uten noe nøkkelord som JOIN. Vi bruker rett og slett flere tabeller adskilt av komma etter FROM. Uten noe seleksjon (i praksis WHERE-nøkkelordet) vil dette gi alle mulige kombinasjoner av de to tabellene sammenlagt. Dette er det samme som INNER JOIN vil gjøre dersom man ikke har en seleksjon eller seleksjonen alltid resulterer til «sant» (true). Eksempel på CROSS JOIN For å illustrere dette bedre lager jeg to nye tabeller. En av disse tabellene er cross_test_1 som har kun én kolonne/attributt; numb. Denne tabellen inneholder følgende data: 1, 2, 3. Jeg har også en annen tabell med navn cross_test_2 som inneholder akkurat samme data. Vi tester det ut: SELECT * FROM cross_test_1, cross_test_2; numb numb rows in set (0.00 sec) Vi kan oppnå samme resultat med INNER JOIN (dersom seleksjonen mangler eller alltid resulterer i true): Mikael Brevik! Side: 11 av 13
12 SELECT * from cross_test_1 INNER JOIN cross_test_2; numb numb rows in set (0.00 sec) Mikael Brevik! Side: 12 av 13
13 Referanser Jeg er særdeles dårlig på norske uttrykk når det gjelder programmering. Til dette har jeg brukt boka Databaser som er skrevet av Kjell Toft Hansen og Tore Mallaug. Revisjoner av dette dokumentet Versjon Endringer Dato 1.0 Dokumentet opprettet Rettet opp i noen feil og lagt til resultater på spørringer Mikael Brevik! Side: 13 av 13
Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen
Databaser Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen Tema for dagen Hva er relasjonsalgebra? Seleksjon Projeksjon Produkt Indre forening Ytterforening Settoperasjoner: union, snitt, differanse
Detaljer1. SQL spørringer mot flere tabeller
1. SQL spørringer mot flere tabeller Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL spørringer mot flere tabeller Tore Mallaug 29.9.2008 Lærestoffet er utviklet for faget Databaser
DetaljerOppgaver Oppgave a: Sett opp mulige relasjoner
Løsningsforslag til øving 4: Relasjonsmodellen Kjell Toft Hansen 18.09.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgaver Oppgave a: Sett opp
DetaljerRepetisjon: Normalformer og SQL
IN2090 databaser og datamodellering Repetisjon: Normalformer og SQL Mathias Stang og Stein Michael Storleer 21. november 2018 1 Agenda Normalformer Funksjonelle avhengigheter Nøkler Finne hvilke normalformer
DetaljerDatamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2
http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side
Detaljer1. Innføring i bruk av MySQL Query Browser
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innføring i bruk av MySQL Query Browser Kjell Toft Hansen 28.02.2007 Lærestoffet er utviklet for faget LV338D Databaseadministrasjon 1. Innføring
DetaljerMiniverden og ER- modell
TDT4145 Datamodellering og databasesystemer SQL- oppgave 1 Miniverden og ER- modell Vi tar utgangspunkt i en enkel modell for en pizza- restaurant, der følgende ER- diagram beskriver databasen: Relasjonsdatabase-
Detaljer1. Relasjonsmodellen. 1.1. Kommentarer til læreboka
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Relasjonsmodellen Tore Mallaug 2.9.2013 Lærestoffet er utviklet for faget Databaser 1. Relasjonsmodellen Resymé: Denne leksjonen gir en kort
Detaljer1. SQL datadefinisjon og manipulering
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL datadefinisjon og manipulering Tore Mallaug 7.10.2008 Lærestoffet er utviklet for faget Databaser 1. SQL datadefinisjon og manipulering
DetaljerDatabaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen
Databaser Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen Tema for dagen Relasjonsmodellen Hvorfor relasjoner? Fra ER diagram til relasjoner 22.09.2008
DetaljerDatabaser: Relasjonsmodellen, del I
LC238D http://www.aitel.hist.no/fag/_dmdb/ Databaser: Relasjonsmodellen, del I En relasjon er en matematisk mengde side 2 Egenskaper ved relasjoner side 3 Entitetsintegritet side 4-5 Referanseintegritet
DetaljerDatamodellering og databaser SQL, del 2
http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side
DetaljerDatamodellering og databaser SQL, del 2
http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side
DetaljerDel 3: Noark 5-basert databasestruktur
Del 3: Noark 5-basert databasestruktur Oppgaven består av en CREATE-del, en INSERT-del og en SELECT-del. CREATEdelen går ut på å lage en databasestruktur etter spesifikasjonene i Noark 5. Strukturen er
DetaljerIntegritetsregler i SQL. Primærnøkler
Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler skranker på attributter og tupler Interrelasjonsskranker assertions Triggere INF212
DetaljerSpørsmålskompilering del 1
UNIVERSITETET I OSLO Spørsmålskompilering del 1 Parsering Logiske spørreplaner uttrykt i relasjonsalgebra Optimalisering ved hjelp av algebraiske lover Institutt for Informatikk INF3100 - V18 - Evgenij
DetaljerSpørsmålskompilering del 1
UNIVERSITETET I OSLO Spørsmålskompilering del 1 Parsering Logiske spørreplaner uttrykt i relasjonsalgebra Optimalisering ved hjelp av algebraiske lover Institutt for Informatikk INF3100-11.4.2016 - Ellen
DetaljerIntegritetsregler i SQL
UNIVERSITETET I OSLO Integritetsregler i SQL INF3100 8.2.2005 Ragnar Normann 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler
DetaljerOppgave 1 (Opprett en database og en tabell)
Oppgave 1 (Opprett en database og en tabell) 1) I «Object Explorer» (i «SQL Server Management Studio»), høyreklikk over Databases : 1 2 2) Skriv så databasenavnet og klikk OK: 3) Plasser så kursoren på
DetaljerINF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1
INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1 Dagens temaer Relasjonsalgebraen Renavning Algebra Heltallsalgebra Klassisk relasjonsalgebra Mengdeoperatorer Union Snitt
DetaljerLøsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)
Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal
DetaljerJoin. Intuitivt: Skjøte sammen to relasjoner. Intuitivt: 1. Beregn R S 2. Velg ut de tuplene som tilfredsstiller joinbetingelsen C
Join Intuitivt: Skjøte sammen to relasjoner R S C Intuitivt: 1. Beregn R S 2. Velg ut de tuplene som tilfredsstiller joinbetingelsen C Join Bistro bn mkat A kosher A vegetabilsk B uten melk B hallal B
DetaljerSensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)
Sensorveiledning for IN2090 og INF1300 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal du anta at alle begreper har en unik representasjon. Er plasseringen
DetaljerRelasjonsalgebra. Hva?
Relasjonsalgebra. Hva? Relasjonsalgebra består av et sett med høynivås operatorer som kan brukes til å manipulere med relasjoner (slå sammen to tabeller, selektere data etc.). Tankegangen er viktig å kjenne
DetaljerEKSAMENSFORSIDE Skriftlig eksamen med tilsyn
EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: Emnenavn: DAT1000 Database 1 Dato: Tid fra / til: 13.05.2019 10.00 14.00 Ansvarlig faglærer: Bjørn Kristoffersen Campus: Fakultet: Bø Handelshøyskolen
DetaljerOppgave 3 - normalisering
Oppgave 3 - normalisering Løsningsforslag Oppgave 3 - løsning 22.10.2014 Øvelsesoppgave 3 1. Normaliser logisk skjema fra oppgave 1 og 2 (Læringssenter) 2. Normaliser logisk skjema fra seminarøvelsen (Nøsteelskere)
DetaljerEksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 99539963 Roger Midtstraum: 99572420
DetaljerUnit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3
Relational Algebra 1 Unit 3.3 Unit 3.3 - Relational Algebra 1 1 Relational Algebra Relational Algebra is : the formal description of how a relational database operates the mathematics which underpin SQL
DetaljerSpørringer mot flere tabeller
Spørringer mot flere tabeller Kartesisk produkt / kryssprodukt/krysskobling Likekoblinger INNER JOIN syntaks Generelle koblinger Egenkoblinger Ytre koblinger Union, snitt og differanse Mer om gruppering
DetaljerIN3020 V2019 Obligatorisk oppgave nr. 1
IN3020 V2019 Obligatorisk oppgave nr. 1 Oppgavesettet skal løses og leveres individuelt. Gjennomføring og innlevering av oppgaven skal skje i henhold til gjeldende retningslinjer ved Institutt for informatikk,
DetaljerHøgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015. Tid: 10-14. Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1
Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015 Tid: 10-14 Målform: Sidetall: Hjelpemidler: Merknader: Bokmål/nynorsk 13 med forside Ingen Ingen Vedlegg: Eksempeldata til oppgave 1 Eksamensresultater
DetaljerINF1300 Relasjonsalgebra. Et matematisk fundament for å forstå SQL-setninger
INF1300 Relasjonsalgebra Et matematisk fundament for å forstå SQL-setninger Innhold Relasjonsalgebraen Operatorene i relasjonsalgebraen Relasjonsalgebratolkning av select-setningen Kostbare operasjoner
DetaljerEKSAMENSFORSIDE Skriftlig eksamen med tilsyn
EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: Emnenavn: 6102 Databaser Dato: Tid fra / til: 06.06.2017 10:00-14:00 Ansv. faglærer: Bjørn Kristoffersen Campus: Fakultet: Bø Handelshøyskolen Antall
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 6.desember 2010 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasse(r): LC238D Datamodellering og databaser HING2009HA
DetaljerRomlig datamanipulering
Romlig datamanipulering Gunnar Tenge, 18.04.08 Romlige manipuleringsteknikker brukes i GIS-analyser. I denne artikkelen forklares alle manipuleringsteknikker som man kan forvente å finne i et GIS-program.
DetaljerAlle attributter har NULL som mulig verdi. mulige verdier for integer: NULL, 0, 1, 2, 3...
NULL verdier Alle attributter har NULL som mulig verdi mulige verdier for integer: NULL, 0, 1, 2, 3... Dog mulig å lage tabeller med attributter som forbyr NULL Ulik bruk: manglende informasjon («vet ikke
DetaljerOppgave: Finn navn og tittel på alle som har arbeidet på prosjektet «Vintersalg»
Skjema Prosjekt(PId, Pnavn, KId, Pleder, StartDato) Ansatt(AId, Navn, Tittel, Fdato, Pnr, AnsDato) Timeliste(AId, Dato, PId, Timer) Kunde(KId, Knavn, Adresse) Oppgave: Finn navn og tittel på alle som har
DetaljerIN2090 Databaser og datamodellering. 06 Enkele joins og nestede SELECT
IN2090 Databaser og datamodellering 06 Enkele joins og nestede SELECT Leif Harald Karlsen leifhka@ifi.uio.no Universitetet i Oslo 1 / 43 Repetisjon (Enkle) SELECT-spørringer har formen: SELECT
DetaljerINF1300 Introduksjon til databaser
UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsalgebraen Oversettelse av select-from-where til relasjonsalgebra SQL: union, snitt, differanse, kartesisk produkt INF1300 22.10.2007
DetaljerÅ bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter
Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC9D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc9d.php Høgskolen i Sør-Trøndelag,
DetaljerEKSAMEN DATABASER
EKSAMEN 6102 DATABASER 30.05.2016 Tid: 4 timer (9-13) Målform: Sidetall: Hjelpemidler: Merknader: Vedlegg: Bokmål 7 (inkludert denne) Ingen Ingen Eksempeldata Sensuren finner du på StudentWeb. Vekting
DetaljerSQL, del 1 - select. Hva er SQL?
LC238D http://www.aitel.hist.no/fag/_dmdb/ SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3 SELECT-setningen, syntaks side 4-5 Operatorer side 6 Å hente ut et radintervall fra resultatsettet
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1
UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 1.2.2005 Ragnar Normann 1 SQL SQL Structured Query Language er et deklarativt språk for
DetaljerSQL SELECT-FROM-WHERE. Skjemadefinisjon og datainnsetting i SQL. Semantikk bak ein-relasjons-spørring
SQL Språk for Skjemadefinisjon Spørringar Database-oppdateringar Svært høgnivå: i prinsippet skriv ein kva ein vil ha som resultat, utan å spesifisere korleis Sterk grad av optimalisering effektivt Skjemadefinisjon
DetaljerEKSAMEN 6102 / 6102N DATABASER
EKSAMEN 6102 / 6102N DATABASER 06.12.2016 Tid: 4 timer (10-14) Målform: Sidetall: Hjelpemidler: Merknader: Vedlegg: Bokmål / nynorsk 13 (inkludert denne) Ingen Ingen Eksempeltabeller Sensuren finner du
DetaljerMangelen på Internett adresser.
1. Av 2 Introduksjon og forord Internett er som kjent bygd opp i adresser, akkurat som husstander, byer og land, dette er fordi Internett er bygd opp mye likt post systemet, du kan sammenligne en maskin
Detaljer>>12 Arbeide med MySQL
106 Snarveien til MySQL og Dreamweaver CS5 >>12 Arbeide med MySQL I dette kapittelet vil du lære hvordan du installerer MySQL Workbench å opprette prosjekter å lage tabeller hvordan du ser på innholdet
DetaljerIntegritetsregler i SQL
UNIVERSITETET I OSLO Integritetsregler i SQL Institutt for Informatikk INF3100 13.2.2007 Ellen Munthe-Kaas 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende
DetaljerSQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.
SQL og Mengdelære Oracle, MySQL, Access, bruker forskjellige syntaks. Kan vi beskrive, hva SQL er og hva man kan gjøre med SQL, uavhengig av konkret syntaks!!! Hvilke universale formelle språk har vi til
DetaljerINFO122 Innføring i databaser. Oblig 2. av Frode H. Pedersen, Kjartan B. Michalsen og Kristin Breivik
INFO122 Innføring i databaser Oblig 2 av Frode H. Pedersen, Kjartan B. Michalsen og Kristin Breivik a) For at en relasjonsmodell skal være på en viss normalform, må alle relasjoner oppfylle minst denne
Detaljersom blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,
1. Last ned og installer XAMPP. 2. Sjekk at alt fungerer. 3. MySQL. Vi begynner med databaseserveren, MySQL. Gå til DOS klarmelding eller ledetekst (finnes under tilbehør på startmenyen om du ikke som
DetaljerProsedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19
Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre
DetaljerOppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:
Kjell Toft Hansen 02.10.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgave 1 1. Spørring: SELECT oh.*, delnr, kvantum FROM ordrehode oh, ordredetalj
Detaljer>>21 Datamodellering i MySQL Workbench
21 MYSQL WORKBENCH 207 >>21 Datamodellering i MySQL Workbench I dette kapittelet vil du lære hvordan man lager datamodeller i MySQL Workbench hvordan man overfører en modell til MySQL I tillegg til å være
DetaljerDBS18 - Strategier for Query-prosessering
Side 1 for Databaser DBS18 - Strategier for Query-prosessering søndag 22. mai 2016 13.03 Pensum 18.1-18.4, side 655-674, unntatt 18.4.4 og 18.4.5 En spørring som blir skrevet i et høynivå-språk, må bli
DetaljerLC238D Datamodellering og databaser SQL, del 1 - SELECT
LC238D http://www.aitel.hist.no/fag/_dmdb/ SQL, del 1 - SELECT Hva er SQL? side 2 Eksempelbase side 3 SELECT-setningen, syntaks side 4-5 Operatorer side 6 Å hente ut et radintervall fra resultatsettet
DetaljerSQL Introduksjonskurs. Oversikt
SQL Introduksjonskurs Oversikt Oversikt 2/7 Introduksjon til datamodellering Normalisering Logisk skjema til Database Strukturelle operasjoner Operasjoner mot data Kontrolloperasjoner Aggregering og indekser
DetaljerUtvikling fra kjernen og ut
Utvikling fra kjernen og ut PHP-arkitektur Brukergrensesnitt! inn ut Dynamisk web-side bygges opp på grunnlag av spørring mot databasen Utviklingsretning Applikasjon Virkelighetsmodell Plattform Bruker
DetaljerEksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 995 39 963 Roger Midtstraum: 995 72
DetaljerDatabaser kort intro. Tom Heine Nätt
Databaser kort intro Tom Heine Nätt Agenda Hva er en database? Hva er SQL? Hente ut data fra en database SELECT Behandle data i en database (kort) CREATE TABLE, INSERT, UPDATE, DELETE Databaser med flere
DetaljerDatamodellering 101 En tenkt høgskoledatabase
Datamodellering 101 En tenkt høgskoledatabase Spesifikasjoner for databasen vi skal modellere: Oversikt over studenter med: Fullt navn Klasse Studium Avdeling Brukernavn Fødselsdag Adresse Telefonnummer
DetaljerSELECT DISTINCT Fornavn, Etternavn, Programtittel FROM Program P, Medvirkende M, Deltagelse D. SELECT Tilgjengelighet FROM Program
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 10/11-15 DISTINCT Pregnante navn på kolonner Boolske operatorer: OR, NOT Beregningsfunksjoner og Gruppering NULL-verdier Maria
DetaljerSQL: Repe)sjon og eksempler Deniz Akkøk Mathias Stang
SQL: Repe)sjon og eksempler Deniz Akkøk Mathias Stang Agenda Rask repe4sjon av enkle spørringer, bruk av PSQL Gruppering: AggregaAunksjoner GROUP BY HAVING Joins: INNER JOIN NATURAL JOIN (implisio join)
DetaljerLøsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 23. mai 2013 Eksamenstid (fra-til): 09:00-13:00 Hjelpemiddelkode/Tillatte
DetaljerINF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013
INF1300 SQL Structured Query Language del 1 Stoff som blir/ble forelest i oktober 2013 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where distinct order by SQLs manipulasjonsspråk Indekser
DetaljerMySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Helge Hafting 16.10.2007 Lærestoffet er utviklet for faget LV476D/LN476D Linux systemdrift Innhold 8 1 8.1 Databasen MySQL.............................
DetaljerProblemer med Indre joins. Inner joins og manglende verdier med aggregater. Left Outer Join. Outer Joins. Hvor mange har kjøpt hvert produkt?
IN2090 Databaser og datamodellering 10 Outer joins og mengdeoperatorer Leif Harald Karlsen leifhka@ifi.uio.no Aggregering og NULL Aggregering med sum, min, max og avg ignorerer NULL-verdier Det betyr også
DetaljerUNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk INF3100-8.2.2010 Ellen Munthe-Kaas 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et
DetaljerSQL 3: Opprette tabeller, datainnsetting og utsnitt
SQL 3: Opprette tabeller, datainnsetting og utsnitt Læreboka kap. 4 03.11.2008 Kjell Toft Hansen 1 Datainnsetting Legg til en ny leverandor i tabellen leverandor INSERT INTO leverandor (lev_nr, lev_navn,
DetaljerUNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ragnar Normann
UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et språk til å beskrive spørsmål om
DetaljerRelasjonsalgebra Kopi av lysark om relasjonsalgebra. Vi går igjennom denne for å lage et matematisk fundament for forståelsen av hvordan
Relasjonsalgebra Kopi av lysark om relasjonsalgebra. Vi går igjennom denne for å lage et matematisk fundament for forståelsen av hvordan select-setningen virker. Temaer som blir tatt inn i SQL-notatet:
DetaljerSQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data
SQL Structured Query Language Definere tabeller Skranker Fylle tabeller med data Lage en tabell med SQL create table R (A 1 D 1 [S 1 ],... A n D n [S n ], [liste av skranker] R er navnet på relasjonen/tabellen
DetaljerSQL, del 1 - select. Hva er SQL?
LC238D http://www.aitel.hist.no/fag/_dmdb/ SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3 SELECT-setningen, syntaks side 4-5 Operatorer side 6 Å hente ut et radintervall fra resultatsettet
DetaljerORDBMS og OODBMS i praksis
ORDBMS og OODBMS i praksis Lars Vidar Magnusson November 2, 2011 Lars Vidar Magnusson () Forelesning i DAS 01.11.2011 November 2, 2011 1 / 18 Eksempler på ORDBMS Flere av de store databaser i dag hevder
Detaljer8. ASP med databasekopling, del I
Else Lervik 16.03.2004 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LV192D Web-programmering med ASP 8. Resymé: Leksjonen begynner med en generell introduksjon til databaser
DetaljerBruke SQL fra Python. Med Psycopg2
Bruke SQL fra Python Med Psycopg2 0 1 (1/3) 1 (2/3) 1 (3/3) 2 Pakken psycopg2 3 Pakken psycopg2 De viktigste klassene vi trenger i psycopg2: connection Håndterer forbindelsen fra Python til PostgreSQL
DetaljerMetaspråket for å beskrive grammatikk
1 SQL-syntaks Korrekt språkbruk bygger på et sett av regler. Eksempler: En SQL utvalgsspørring inneholder alltid ordene SELECT og FROM, mens WHERE og tilhørende betingelse er valgfri. Etter SELECT kan
Detaljer1. Datamodellering. 1.1. Kommentarer til læreboka
Tore Mallaug 20.10.2009 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for fagene LN323D Databaser 1. Datamodellering Resymé: Denne leksjonen viser et par eksempler på ER-modellering
DetaljerUNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas
UNIVERSITETET I OSLO RELASJONSALGEBRA Regning med relasjoner Institutt for Informatikk 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss et språk til å beskrive spørsmål om
Detaljer5602 DATABASER 02.12.2010. Bokmål/nynorsk. 17 (inkludert denne forsiden) Eksamensresultatene blir offentliggjort på Studentweb.
Høgskolen i Telemark EKSAMEN 5602 DATABASER 02.12.2010 Tid: 9-14 Målform: Sidetall: Hjelpemidler: Merknader: Bokmål/nynorsk 17 (inkludert denne forsiden) Ingen Ingen Vedlegg: A: Eksempeldata og B: Svarark
DetaljerGod Databasedesign: På vei mot Normalformer
God Databasedesign: På vei mot Normalformer Martin Giese 4. november 08 Agenda Hva er god databasedesign? Forklart ved et dårlig eksempel Oppdateringsanomalier Repetisjon: Supernøkler, kandidatnøkler,
DetaljerUniversitetet i Bergen Det matematisk-naturvitenskapelige fakultet. Løsningsforslag
1 Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Løsningsforslag Eksamen i emne INF115 Databaser og modellering Tirsdag 31. mai 2016 Tid: 9:00 12:00 Tillatte hjelpemidler: Ingen Oppgavesette
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) INF Ellen Munthe-Kaas 1. Institutt for Informatikk
UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 5.2.2008 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk
DetaljerSpørsmålskompilering del 2
UNIVERSITETET I OSLO Spørsmålskompilering del 2 Estimere størrelsen på mellomresultater Vurdere fysiske spørreplaner Institutt for Informatikk INF3100-7.4.2015 - Ellen Munthe-Kaas 1 Oversikt: Fra spørring
DetaljerSUBTRAKSJON FRA A TIL Å
SUBTRAKSJON FRA A TIL Å VEILEDER FOR FORELDRE MED BARN I 5. 7. KLASSE EMNER Side 1 Innledning til subtraksjon S - 2 2 Grunnleggende om subtraksjon S - 2 3 Ulike fremgangsmåter S - 2 3.1 Tallene under hverandre
DetaljerTilkobling og Triggere
Tilkobling og Triggere Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 12, 2011 1 / 25 Tilkobling med PHP PHP bruker databasespesifike moduler til å koble
DetaljerVersjon
ARK2100 2017 H - Digital arkivdanning og -bevaring I Mappebeskrivelse. Eksamen består av fire deler. Den engelske versjonen bør sees som autoritativ hvis det er uoverensstemmelser i oversettingen. Spørsmål
DetaljerRelasjoner terminologi
Relasjoner terminologi Kopi av lysark fra forelesningen 1. september. Dette er utdrag fra et notat som snart blir publisert. Dette notatet egner seg bedre til repetisjon og selvstudium enn disse arkene.
DetaljerSQL Structured Query Language
SQL Structured Query Language Litt tabellterminologi Definere tabeller Fylle tabeller med data Hente data fra tabeller select-from-where distinct order by Relasjoner terminologi relasjonsnavn Personale
DetaljerRepetisjon. IN2090 Databaser og datamodellering. 06 Enkele joins og nestede SELECT. Eksempler: FilmDB. Enkle SELECT-spørringer i et nøtteskall
IN2090 Databaser og datamodellering 06 Enkele joins og nestede SELECT Leif Harald Karlsen leifhka@ifiuiono Repetisjon (Enkle) SELECT-spørringer har formen: SELECT FROM WHERE
DetaljerEmnenavn: Ny/utsatt eksamen. Eksamenstid: Faglærer: Edgar Bostrøm. Erik Åsberg. Davide Roverso
Høgskolen i østfold EKSAMEN Emnekode: Emnenavn: ITF301415 Store datamengder: analyse og prosessering Ny/utsatt eksamen Dato: Eksamenstid: 20.05.2016 09:00-12:00 Hjelpemidler: Ingen Faglærer: Edgar Bostrøm
DetaljerUNIVERSITETET RELASJONSALGEBRA. Regning g med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET IOSLO RELASJONSALGEBRA Regning g med relasjoner Institutt for Informatikk INF3100-7.2.2011 Ellen Munthe-Kaas 1 Relasjonsalgebraen definerer en mengde av operasjoner på relasjoner gir oss
DetaljerINF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22.
INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning onsdag 22. september 2010 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where
DetaljerInnhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem
Innhold Forord....................................................... 5 Innledning.................................................... 15 Databaser som basis i grunnopplæringen....................... 15
DetaljerINF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14.
INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning mandag 14. september 2009 Dagens tema SQLs definisjonsspråk SQLs spørrespråk select-from-where
DetaljerUNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language (The intergalactic dataspeak) Institutt for Informatikk INF3100 6.2.2005 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk
DetaljerRelasjonsalgebraen. Algebra
Relasjonsalgebraen Definerer en mengde av operasjoner på relasjoner Gir oss et språk til å beskrive spørsmål om innholdet i relasjonene Språket er prosedyralt: Vi sier hvordan svaret skal beregnes. Alternativet
Detaljer1. Normalisering Kommentarer til læreboka
Tore Mallaug 6.11.2007 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for fagene LN323D Databaser 1. Resymé: Denne leksjonen viser et eksempel på normalisering av en liten database.
DetaljerARK H - Digital arkivdanning og -bevaring I Mappebeskrivelse. OBS Eksamen består av fire deler!
ARK2100 2016 H - Digital arkivdanning og -bevaring I Mappebeskrivelse. OBS Eksamen består av fire deler! Spørsmål 1: ER-modellering En venn av deg har spurt deg om du kan se nærmere på datamodelleringsbehovene
DetaljerLøsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer
Institutt for datateknikk og informasjonsvitenskap Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 995996 Roger Midtstraum:
Detaljer