Indre select-setninger Nestede select-setninger
|
|
|
- Hildegunn Marthinsen
- 9 år siden
- Visninger:
Transkript
1 Indre select-setninger Nestede select-setninger
2 Setninger som beregner en tabell med kun én verdi
3 select avg(lonn) from Ansatt where avd = 'marketing ; select avg(lonn)from Ansatt where avd = 'marketing ; avg (1 row)
4 select 2 * avg(lonn) from Ansatt where avd = 'marketing ; select 2*avg(lonn)from Ansatt where avd = 'marketing ; avg (1 row)
5 Eksempel vi så sist: AnsaI(id, navn, lonn, avd) Finn antall selgere som tjener mer enn det dobbelte av markedsførernes gjennomsni5slønn select count * from Ansatt where avd = 'salg' and lonn > ( select 2 * avg(lonn) from Ansatt where avd = 'marketing ); Den indre setningen beregner en relasjon med én verdi. Tabellen har m.a.o. én kolonne og ei tuppel. Hvis det ikke var slik, ville >-tegnet ikke gi noen mening.
6 Eksempel vi så sist: AnsaI(id, navn, lonn, avd) Finn antall selgere som tjener mer enn det dobbelte av markedsførernes gjennomsni5slønn select count * from Ansatt where avd = 'salg' and lonn > ( ); Den indre setningen beregner en relasjon med én verdi. Tabellen har m.a.o. én kolonne og ei tuppel. Hvis det ikke var slik, ville >-tegnet ikke gi noen mening.
7 Eksempel vi så sist: AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) For hvert prosjekt, list opp medvirkende avdelinger som har minst 10 ansaie og som har ført minst 100 Rmer på prosjektet. Sorter dem eier innsats: select pnr as prosjekt, avd as avdeling, sum(timer) as innsats from Ansatt A, Avdeling D, Prosjektplan P where A.avd = D.avd and A.id = P.id group by P.pnr, D.avd having sum(timer) > 99 and 9 < ( select count(*) from Ansatt A1 where A1.avd = D.avd ) order by prosjekt, innsats desc;
8 Eksempel vi så sist: AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) Legg merke 7l den indre select-setningen som har en seleksjonsbe7ngelse som sammenligner verdier i A1.avd med verdier i a5ribu5et D.avd fra den ytre setningen. select pnr as prosjekt, avd as avdeling, sum(timer) as innsats from Ansatt A, Avdeling D, Prosjektplan P where A.avd = D.avd and A.id = P.id group by P.pnr, D.avd having sum(timer) > 99 and 9 < ( select count(*) from Ansatt A1 where A1.avd = D.avd ) order by prosjekt, innsats desc;
9 Eksempel vi så sist: AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) Legg merke 7l den indre select-setningen som har en seleksjonsbe7ngelse som sammenligner verdier i A1.avd med verdier i a5ribu5et D.avd fra den ytre setningen. select pnr as prosjekt, avd as avdeling, sum(timer) as innsats from Ansatt A, Avdeling D, Prosjektplan P where A.avd = D.avd and A.id = P.id group by P.pnr, D.avd having sum(timer) > 99 and Den indre 9 < ( select count(*) setningen blir from Ansatt A1 en tabell med where A1.avd = D.avd ) én verdi order by prosjekt, innsats desc;
10 Eksempel vi så sist: AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) Legg merke 7l den indre select-setningen som har en seleksjonsbe7ngelse som sammenligner verdier i A1.avd med verdier i a5ribu5et D.avd fra den ytre setningen. select pnr as prosjekt, avd as avdeling, sum(timer) as innsats from Ansatt A, Avdeling D, Prosjektplan P where A.avd = D.avd and A.id = P.id group by P.pnr, D.avd having sum(timer) > 99 and Den indre 9 < ( select count(*) setningen blir from Ansatt A1 en tabell med where A1.avd = D.avd ) én verdi order by prosjekt, innsats desc; korrellert spørring
11 Setninger som beregner en tabell med kun én verdi kan forkomme der vi kan ha en konstant
12 Mest vanlig i where having
13 Setninger som beregner en tabell med flere kolonner eller tupler kan forkomme hvor?
14 select [distinct] <resultatattributter> from <tabeller> [ where <utvalgbetingelse> ] [ group by <grupperingsattributter> [ having <resultatbetingelse> ] ] [ order by <ordningsattributter> ]
15 select [distinct] <resultatattributter> from <tabeller> [ where <utvalgbetingelse> ] [ group by <grupperingsattributter> [ having <resultatbetingelse> ] ] [ order by <ordningsattributter> ] Husk at en select-setning er en relasjon (tabell)!
16 select [distinct] <resultatattributter> from T 1,T 2,,T k [ where <utvalgbetingelse> ] [ group by <grupperingsattributter> [ having <resultatbetingelse> ] ] [ order by <ordningsattributter> ] Husk at en select-setning er en relasjon (tabell)!
17 select [distinct] <resultatattributter> from T 1, T 2,, (select ) as nytabell,, T k [ where <utvalgbetingelse> ] [ group by <grupperingsattributter> [ having <resultatbetingelse> ] ] [ order by <ordningsattributter> ]
18 fdb=> \d film Table "public.film" Column Type Modifiers filmid integer title text not null prodyear integer
19 select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 fdb=> \d film Table "public.film" Column Type Modifiers filmid integer title text not null prodyear integer
20 ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as poptitler
21 select max(poptitler.ant) from ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as poptitler ;
22 select max(poptitler.ant) from ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as poptitler ; Den indre select-setningen blir her som en tabell med tabellnavnet PopTitler
23 select max(poptitler.ant) from ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as poptitler ; Den indre select-setningen blir her som en tabell med tabellnavnet PopTitler Vi må allrd gi et navn Rl indre select-setninger i fromdelen
24 Film(filmid, Rtle, prodyear) select F.prodyear, count(*) as ant from Film F natural join ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as poptitler group by F.prodyear order by ant ;
25 fdb=> \d Filmcountry Table "public.filmcountry" Column Type Modifiers filmid integer country text
26 Film(filmid, Rtle, prodyear) Filmcountry(filmid, country) select C.country, count(*) as ant from Film F natural join Filmcountry C natural join ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as T group by C.country having count(*)>5 order by ant ;
27 Film(filmid, Rtle, prodyear) Filmcountry(filmid, country) select T.Rtle, count(*) from Film F natural join Filmcountry C natural join ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as T where C.country = 'Norway' group by T.Rtle ;
28 Views
29 ( select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ) as poptitler
30 create view PopTitler (Rtle, ant) as select Rtle, count(*) as ant from Film group by Rtle having count(*) > 30 ;
31 create view PopTitler (RIel, ant) as select Rtle, count(*) from Film group by Rtle having count(*) > 5 ;
32 create view PopTitler (RIel, ant) as select Rtle, count(*) from Film group by Rtle having count(*) > 5 ; Et view kan brukes som en tabell, gjerne i stedet for en indre select-setning. I deie viewet er det 2 airibuier: RIel og ant
33 create view PopTitler as select Rtle, count(*) from Film group by Rtle having count(*) > 5 ; Et view kan brukes som en tabell, gjerne i stedet for en indre select-setning. I deie viewet er det 2 airibuier: Rtle og count
34 create view PopTitler as select Rtle as RIel, count(*) as ant from Film group by Rtle having count(*) > 5 ; Et view kan brukes som en tabell, gjerne i stedet for en indre select-setning. I deie viewet er det 2 airibuier: RIel og ant
35 fdb=> \d filmgenre Table "public.filmgenre" Column Type Modifiers filmid integer genre text
36 select P.RIel, count(*) from Film F natural join Filmgenre G join PopRtler P on F.Rtle = P.RIel where G.genre = 'Drama' group by P.RIel ;
37 select P.RIel, count(*) from Film F natural join Filmgenre G join PopRtler P on F.Rtle = P.RIel where G.genre = 'Drama' group by P.RIel ; create view PopTitler as select Rtle as RIel, count(*) as ant from Film group by Rtle having count(*) > 5 ;
38 select P.Rtle, count(*) from Film F natural join Filmgenre G natural join PopRtler P where G.genre = 'Drama' group by P.Rtle ; create view PopTitler as select Rtle as Rtle, count(*) as ant from Film group by Rtle having count(*) > 5 ;
39 select P.Rtle, count(*) from Film F natural join Filmgenre G natural join PopRtler P create view PopTitler as select Rtle as Rtle, count(*) as ant from Film group by Rtle having count(*) > 5 ; where G.genre = 'Drama' group by P.Rtle ;
40 select P.Rtle, count(*) from Film F natural join Filmgenre G natural join create view PopTitler as select Rtle as Rtle, count(*) as ant from Film group by Rtle having count(*) > 5 ; PopRtler P where G.genre = 'Drama' group by P.Rtle ;
41 select P.Rtle, count(*) from Film F natural join Filmgenre G natural join ( select Rtle as Rtle, count(*) as ant from Film group by Rtle having count(*) > 5 ) PopRtler P where G.genre = 'Drama' group by P.Rtle ;
42 select P.Rtle, count(*) from Film F natural join Filmgenre G natural join ( select Rtle as Rtle, count(*) as ant from Film group by Rtle having count(*) > 5 ) as P where G.genre = 'Drama' group by P.Rtle ;
43 select P.RIel, count(*) as ant from Film F join PopRtler P on F.Rtle = P.RIel group by P.RIel, ant having ant = ( select max(ant) from PopTitler ) ; create view PopTitler as select Rtle as RIel, count(*) as ant from Film group by Rtle having count(*) > 5 ;
44 select P.RIel, count(*) as ant from Film F join PopRtler P on F.Rtle = P.RIel group by P.RIel, ant having ant = ( select max(ant) from PopTitler ) ; Indre selectsetning som beregner én verdi create view PopTitler as select Rtle as RIel, count(*) as ant from Film group by Rtle having count(*) > 5 ;
45 select P.RIel, count(*) as ant from Film F join PopRtler P on F.Rtle = P.RIel group by P.RIel, ant having ant = ( select max(ant) from PopTitler ) ; her kan vi igjen ersta5e viewet PopTitler med select-setningen som definerer det Indre selectsetning som beregner én verdi create view PopTitler as select Rtle as RIel, count(*) as ant from Film group by Rtle having count(*) > 5 ;
46 select P.RIel, count(*) as ant from Film F join PopRtler P on F.Rtle = P.RIel group by P.RIel, ant having ant = ( select max(ant) from PopTitler ) ; her kan vi igjen ersta5e viewet PopTitler med select-setningen som definerer det Indre selectsetning som beregner én verdi create view PopTitler as select Rtle as RIel, count(*) as ant from Film group by Rtle having count(*) > 5 ;
47
48 Relasjonssammenligninger SQL-u5rykket e in R exists R e = any R e > all R evalueres 7l true hviss e finnes som forekomst i R R har minst én forekomst e = minst én vilkårlig verdi i R e > alle verdier i R
49 Relasjonssammenligninger SQL-u5rykket e in R exists R e = any R e > all R evalueres 7l true hviss e finnes som forekomst i R R har minst én forekomst e = minst én vilkårlig verdi i R e > alle verdier i R Kan forekomme i where- og having-berngelser
50 AnsaI(id, navn, lonn, avd) Finn antall selgere som tjener mer enn samtlige markedsførere
51 AnsaI(id, navn, lonn, avd) select count(*) from Ansatt where avd = 'salg' and lonn > all (select lonn from Ansatt where avd = 'marketing'); Finn antall selgere som tjener mer enn samtlige markedsførere
52 AnsaI(id, navn, lonn, avd) select count(*) from Ansatt where avd = 'salg' and lonn > all (select lonn from Ansatt where avd = 'marketing'); Den indre setningen gir verdien I airibuiet lonn for alle ansaie som har markerng som verdi I airibuiet avd Finn antall selgere som tjener mer enn samtlige markedsførere
53 Film(filmid, Rtle, prodyear) FilmparRcipaRon(parRd, personid, filmid, pariype) Filmer og rolle for personer med navnet Michael King
54 Film(filmid, Rtle, prodyear) FilmparRcipaRon(parRd, personid, filmid, pariype) Filmer og rolle for personer med navnet Michael King select personid, title, parttype from film f natural join filmparticipation fp natural join person p where personid = any ( select personid from Person where lastname like 'King' and firstname like 'Michael' );
55 Film(filmid, Rtle, prodyear) FilmparRcipaRon(parRd, personid, filmid, pariype) Filmer og rolle for personer med navnet Michael King select personid, title, parttype from film f natural join filmparticipation fp natural join person p where personid = any ( select personid from Person where lastname like 'King' and firstname like 'Michael' ); Den indre setningen gir alle forekomster av personid fra FilmparRcipaRon-tabellen med navnet Michael King.
56 Film(filmid, Rtle, prodyear) Filmcountry(filmid, country) Finn antall filmer som er produsert i nordiske land
57 Film(filmid, Rtle, prodyear) Filmcountry(filmid, country) select C.country, count(*) from Film F natural join Filmcountry C where C.country in ('Norway', 'Sweden', 'Denmark', 'Finland', 'Iceland') group by C.country;
58 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) navn på ansa5e som ikke har ført noen prosjekjmer
59 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) select navn from Ansatt where id not in (select id from Prosjektplan); navn på ansa5e som ikke har ført noen prosjekjmer
60 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) select navn from Ansatt where id not in (select id from Prosjektplan); Den indre setningen gir alle ansai-id som finnes i Prosjektplan navn på ansa5e som ikke har ført noen prosjekjmer
61 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) Finn navn på ansa5e som skal arbeide mer enn 10 7mer på samtlige av sine prosjekter
62 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) select A.navn from Ansatt A where not exists ( select * from Prosjektplan P where P.id = A.id and P.timer <= 10 ); Finn navn på ansa5e som skal arbeide mer enn 10 7mer på samtlige av sine prosjekter
63 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) select A.navn from Ansatt A where not exists ( select * from Prosjektplan P where P.id = A.id and P.timer <= 10 ); Den indre setningen gir alle forekomster av prosjektplantabellen der den ansaie A.id skal jobbe 10 Rmer eller mindre på prosjektet P.pnr Finn navn på ansa5e som skal arbeide mer enn 10 7mer på samtlige av sine prosjekter
64 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjekt(pnr, leder) Prosjektplan(pnr, id, Rmer) Finn navn på de ansa5e som ikke skal delta på noe prosjekt ledet av en avdelingsleder
65 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjekt(pnr, leder) Prosjektplan(pnr, id, Rmer) Finn navn på de ansa5e som ikke skal delta på noe prosjekt ledet av en avdelingsleder select navn from Ansatt A where not exists ( select * from Prosjekt P, Prosjektplan PL where PL.id = A.id and PL.pnr = P.pnr and P.leder in (select leder from Avdeling) );
66 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) Finn navn på ansa5e som skal delta på alle prosjekter
67 AnsaI(id, navn, lonn, avd) Avdeling(avd, leder) Prosjektplan(pnr, id, Rmer) Finn navn på ansa5e som skal delta på alle prosjekter select A.navn from Ansatt A where not exists ( select P1.pnr from Prosjektplan P1 where not exists ( select * from Prosjektplan P2 where P2.pnr = P1.pnr and P2.id = A.id ) );
68 select count(filmid) from filmcountry where filmid not in (select filmid from film) ;
69 select count(filmid) from filmcountry where filmid not in (select filmid from film) ; fdb=> select count(filmid) fdb-> from filmcountry fdb-> where fdb-> filmid not in (select filmid from film) fdb-> ; -- denne spørringen hadde eksekvert i mer -- enn 3 timer da jeg stanset den: Cancel request sent ERROR: canceling statement due to user request fdb=>
70 select count(filmid) from filmcountry f where not exists (select filmid from film ff where ff.filmid = f.filmid) ; -- tok mindre enn 1 - ett - sekund!
71 select count(filmid) from filmcountry f where not exists (select filmid from film ff where ff.filmid = f.filmid) ; -- tok mindre enn 1 - ett - sekund! select count(filmid) from filmcountry where filmid not in (select filmid from film) ;
SQL Structured Query Language. Repetisjon av select spørringer Nestede select spørringer Mengdeoperasjoner Views Flere operatorer
SQL Structured Query Language Repetisjon av select spørringer Nestede select spørringer Mengdeoperasjoner Views Flere operatorer Generelt utseende av SQL-spørsmål select [ distinct ]
INF1300 Introduksjon til databaser
UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Det meste av resten av SQL Sammenligning med tekstmønstre Aggregeringsfunksjoner Nestede spørsmål Gruppering Relasjonssammenligninger:
INF1300 Introduksjon til databaser
UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Det meste av resten av SQL Sammenligning med tekstmønstre Aggregeringsfunksjoner Gruppering Kvantorer Nestede spørsmål View JDBC INF1300
INF1300 Det meste av resten av SQL. Utleggsark v. 2.0
INF1300 Det meste av resten av SQL Utleggsark v. 2.0 Dagens temaer Sammenligning med tekstmønstre Aggregeringsfunksjoner Nestede spørsmål Gruppering Relasjonssammenligninger: View JDBC exists in any all
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1300 Introduksjon til databaser Eksamensdag: 30. november 2015 Tid for eksamen: 09.00 15.00 Oppgavesettet er på: 6 sider Vedlegg:
Alle 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
Join. 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
SQL: 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)
Repetisjon: 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
Bruke 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
Lø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
Notater: INF1300. Veronika Heimsbakk 8. januar 2013
Notater: INF1300 Veronika Heimsbakk [email protected] 8. januar 2013 Innhold 1 ORM 3 1.1 Setningers aritet......................... 3 1.2 Faktatyper og broer i ORM................... 3 1.3
UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 11.2.2008 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan
UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET IOSLO SQL Structured Query Language g (forts.) Institutt for Informatikk INF3100 9.2.2009 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan
UNIVERSITETET 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
SQL 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
UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1
UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 7.2.2005 Ragnar Normann 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan være
SQL: SELECT-spørringer
SQL: SELECT-spørringer Evgenij Thorstensen V19 Evgenij Thorstensen SQL: SELECT-spørringer V19 1 / 28 SQL Det intergalaktiske dataspeaket har flere del-språk: Data Query Language: SELECT-spørringer Data
Sensorveiledning 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
Relasjoner 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.
UNIVERSITETET I OSLO SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language Institutt for Informatikk INF3100 3.2.2015 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
UNIVERSITETET I OSLO SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language Institutt for Informatikk INF3100 2.2.2012 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
SQL: SELECT-spørringer
SQL: SELECT-spørringer Evgenij Thorstensen V18 Evgenij Thorstensen SQL: SELECT-spørringer V18 1 / 29 Relasjonsalgebra, recap Tre hovedoperatorer i tillegg til mengdeoperatorer: Seleksjon σ θ Projeksjon
UNIVERSITETET SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET IOSLO SQL Structured Query Language Institutt for Informatikk INF3100 8.2.2011 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
Metasprå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
INF1300 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
SQL Structured Query Language
SQL Structured Query Language Mer SQL: kandidat-, primær- og fremmednøkler Definere tabeller med integritetsregler Hente data fra tabeller select-from-where distinct order by Eksempler kjøres i PostgreSQL
SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12
SQL: Datatyper m.m. Evgenij Thorstensen V18 Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12 Datatyper, kort om mye Vi går en rask ekskursjon i manualen, Kap. 8. https://www.postgresql.org/docs/9.2/sql.html
Bruke SQL fra Java. Med JDBC (Java Database Connec/vity)
Bruke SQL fra Java Med JDBC (Java Database Connec/vity) 0 1 1 1 2 Package java.sql 3 Package java.sql (SE 7) Array Blob CallableStatement Clob ConnecIon DatabaseMetaData Driver NClob ParameterMetaData
UNIVERSITETET I OSLO SQL. Structured Query Language. Institutt for Informatikk. INF Ellen Munthe-Kaas 1
UNIVERSITETET I OSLO SQL Structured Query Language Institutt for Informatikk INF3100 9.2.2010 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser
IN2090 Databaser og datamodellering. 06 Enkele joins og nestede SELECT
IN2090 Databaser og datamodellering 06 Enkele joins og nestede SELECT Leif Harald Karlsen [email protected] Universitetet i Oslo 1 / 43 Repetisjon (Enkle) SELECT-spørringer har formen: SELECT
Oppgave 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å
INF1300 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
INF1300 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
SQL 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
INF1300 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
IN2090 Databaser og datamodellering. 09 Aggregering og sortering
IN2090 Databaser og datamodellering 09 Aggregering og sortering Leif Harald Karlsen [email protected] Universitetet i Oslo 1 / 30 Enklere syntaks for joins Jeg lærte noe nytt forige uke! Man kan bruke
SELECT DISTINCT Fornavn, Etternavn, Programtittel FROM Program P, Medvirkende M, Deltagelse D. SELECT Tilgjengelighet FROM Program
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger ([email protected]) 10/11-15 DISTINCT Pregnante navn på kolonner Boolske operatorer: OR, NOT Beregningsfunksjoner og Gruppering NULL-verdier Maria
Enklere syntaks for joins. IN2090 Databaser og datamodellering. 09 Aggregering og sortering. Eksempel: Variable i delspørringer (1)
IN2090 Databaser og datamodellering 09 Aggregering og sortering Leif Harald Karlsen [email protected] Enklere syntaks for joins Jeg lærte noe nytt forige uke! Man kan bruke USING () fremfor ON
SQL for INF1300. Stein Michael Storleer 7. november 2014
SQL for INF1300 Stein Michael Storleer 7. november 2014 Notatet er en sammenstilling av lysarkene og eksemplene som ble forelest. For select-setningen inneholder notater det som er pensum i INF1300. Dette
SQL, 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
SQL. SQL-standarder. Flere standarder: ANSI SQL SQL2 (SQL-92) SQL3 (SQL-99) = SQL2 + objekt-relasjonelle egenskaper mm
SQL SQL Structured Query Language er et deklarativt språk for spørringer mot relasjonsdatabaser Uttrykkskraften er omtrent som den i relasjonsalgebraen utvidet med tilleggsoperatorene SQL inneholder også
SQL for INF1300. Stein Michael Storleer 15. september 2016
SQL for INF1300 Stein Michael Storleer 15. september 2016 Notatet vil bli utvidet med noen mengdeoperatorer (s. 46) som er utelatt i denne utgaven. Denne kommentaren vil fjernes da. SQL Structured Query
Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL
NTNU Norges teknisk-naturvitenskapelige Universitet Institutt for datateknikk og informasjonsvitenskap Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL Side 1
INF1300 Introduksjon til databaser
UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: SQL SQLs definisjonsspråk SQLs spørrespråk: select-from-where distinct order by SQLs manipulasjonsspråk Indekser Filmdatabasen INF1300
SQL, 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
INF1300 Introduksjon til databaser
UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: SQL SQLs spørrespråk: select-from-where distinct order by Indekser INF1300-15.10.2007 Ellen Munthe-Kaas 1 SQL The Intergalactic Dataspeak
LC238D 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
INF1300 Introduksjon til databaser: SQL Structured Query Language
INF1300 Introduksjon til databaser: SQL Structured Query Language En første introduksjon Lysark til forelesning mandag 14. september 2009 SQL Structured Query Language SQL Structured Query Language er
Oppgave 1 Datamodellering 22 %
Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL EKSAMENSOPPGAVE I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER Eksamensdato:
Datamodellering 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
Repetisjon. 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
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
Datamodellering 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
Datamodellering 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
UNIVERSITETET 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 8.2.2016 Ellen Munthe-Kaas 1 SQL SQL Structured Query Language er et deklarativt språk
Tilkobling 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
1. 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
Avansert bruk av SQL. Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer
Avansert bruk av SQL Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer Begrensninger ved SQL Pensum: Kapittel 5 Databaser Leksjon
Spø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
Spø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
Integritetsregler 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
Oppgave 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
Integritetsregler 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
IN2090 Databaser og datamodellering 07 Datamanipulering
IN2090 Databaser og datamodellering 07 Datamanipulering Leif Harald Karlsen [email protected] Universitetet i Oslo 1 / 43 Komplisert eksempel Finn kundenavn og productnavn på alle kunder som har bestilt
ORDBMS 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
Integritetsregler 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
IN2090 Databaser og datamodellering. 08 Typer og skranker
IN2090 Databaser og datamodellering 08 Typer og skranker Leif Harald Karlsen [email protected] Universitetet i Oslo 1 / 29 Databasers typesystem De fleste relasjonelle databaser har et strengt typesystem
Databasers typesystem. IN2090 Databaser og datamodellering. 08 Typer og skranker. SQL-standarden vs. RDBMSer. Hvilke datatyper har vi
IN2090 Databaser og datamodellering 08 Typer og skranker Leif Harald Karlsen [email protected] Databasers typesystem De fleste relasjonelle databaser har et strengt typesystem Alle kolonner må ha en tilhørende
En lett innføring i foreninger (JOINs) i SQL
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]
EKSAMEN. Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene.
EKSAMEN Emnekode: Emne: ITF10306 Databaser Dato: 21.05.19 Eksamenstid: 09.00-13.00. Hjelpemidler: Syntaksoversikt (vedlagt oppgaven) Oppgavesettet består av 3 tekstoppgaver og en quizz. Vedlegget består
Komplisert eksempel. IN2090 Databaser og datamodellering 07 Datamanipulering. Flere eksempler: Kombinere aggregater. Komplisert eksempel med WITH
IN2090 Databaser og datamodellering 07 Datamanipulering Leif Harald Karlsen [email protected] Komplisert eksempel Finn kundenavn og productnavn på alle kunder som har bestilt en drikkevare som ikke lenger
SQL 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,
IN2090 Databaser og datamodellering. 08 Typer og skranker
IN2090 Databaser og datamodellering 08 Typer og skranker Leif Harald Karlsen [email protected] Universitetet i Oslo 1 / 29 Databasers typesystem De fleste relasjonelle databaser har et strengt typesystem
Løsningsforslag maskindatabasen på Ifi SQL og normalisering
Løsningsforslag maskindatabasen på Ifi SQL og normalisering Oppgave 1 select prosjektid, ansattid, dato, timer from Prosjekttimer where status = 'merknad' order by prosjektid, ansattid; Oppgave 2 Fra primærnøkkelen
DBS18 - 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
D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.
Side 1 av 6 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG TIL EKSAMENSOPPGAVE I FAG TDT4145 DATAMODELLERING OG DATABASESYSTEMER, ver
- 1 - Filmdatabasen. [ORM-versjon] Ellen Munthe-Kaas Januar 2010
- 1 - Filmdatabasen [ORM-versjon] Ellen Munthe-Kaas Januar 2010 Bakgrunn I forbindelse med SQL-undervisningen skal studentene trene på å utføre spørringer mot en enkel relasjonell database. Inspirasjonen
Hø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
Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL
NTNU Norges teknisk-naturvitenskapelige Universitet Institutt for datateknikk og informasjonsvitenskap Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL Side 1
Prosedyrer. 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
Systemutvikling fra kjernen og ut, fra skallet og inn
Systemutvikling fra kjernen og ut, fra skallet og inn Løsninger til oppgaver i kap A.10 i Appendiks A - SQL Legg merke til at oppgave 22 er blitt noe presisert. 1. Hvor mange innbyggere er det i Norge?
En liten rekap. Spørrespråk. I dag SELECT
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger ([email protected]) 06/11-15 Databaser høsten 2015 En liten rekap ER-diagram - vi modellerer dataene våre til danne best mulig grunnlag for informasjonen
INF1300 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
