13/11/14. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Vad är en Databas?

Relevanta dokument
08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

Introduktion till frågespråket SQL (v0.91)

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Idag. Hur skapar vi och underhåller en databas? Index? Vad är det och varför behövs de? Behöver jag bry mig om index?

16/12/14. Databasteknik och informationssystem DD1370. Dagens föreläsning (den sista!) Motivera med kokbok! Idag: Inga knappar L. Dagens föreläsning

Idag. Hur vet vi att vår databas är tillräckligt bra?

Lösningsförslag till Exempel tentamen

Idag. 1. En enkel databas. 2. Prata med databaser (frågepsråket SQL)

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Tentamen för DD1370 Databasteknik och informationssystem

Laboration SQL. Kom igång.

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

04/11/14. Välkomna till kursen: Databasteknik och informationssystem DD1370. Kursanvarig. Dagens föreläsning. Vad är en Databas?

Lathund, procent med bråk, åk 8

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

Skapa en databas. Skapa en tabell. Gör man antingen genom kommandot

Tentamen för DD1370 Databasteknik och informationssystem

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

Räck upp handen ni som är tjänstemän, anställda i kommuner, landsting eller företag. Ni som är politiker.

Partnerskapsförord. giftorättsgods görs till enskild egendom 1, 2. Parter 3. Partnerskapsförordets innehåll: 4

Välkommen till Arbetsförmedlingen! Information till dig som är arbetssökande

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad är en webbläsare?

Utbildningsplan för arrangörer

Databasutveckling Introduktion till SQL och TSQL

Skriva B gammalt nationellt prov

Grunderna i SQL del 1

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

Vi skall skriva uppsats

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Koll på cashen - agera ekonomicoach!

Omvandla Vinklar. 1 Mattematiskt Tankesätt

Databaser och. SQL, utsökningar mot flera tabeller TENTA. # radnr (#) studnr (#) kursnr * tentadatum * betyg

Observera att alla funktioner kan ritas, men endast linjära funktioner blir räta linjer.

Övningar i SQL. SQLAccess.doc Ove Lundgren

Analytisk relationsdatabasdesign

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

Föreläsning 5: Rekursion

För dig som beviljar ärenden

Gemensam problemlösning. Per Berggren och Maria Lindroth

Kiwiböckerna metod och begrepp

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

Idag: Dataabstraktion

Stockholm stad Förskoleundersökning Förskolan Pärlan

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

x 2 + px = ( x + p 2 x 2 2x = ( x + 2

Sollentuna kommun Grodan, I Ur och Skur - Föräldrar Förskola

a n = A2 n + B4 n. { 2 = A + B 6 = 2A + 4B, S(5, 2) = S(4, 1) + 2S(4, 2) = 1 + 2(S(3, 1) + 2S(3, 2)) = 3 + 4(S(2, 1) + 2S(2, 2)) = = 15.

Arbetsblad 4:1. Bråkform decimalform procentform. 1 Fyll i tabellen. 2 Fyll i tabellen. Bild Bråkform Decimalform Procentform 1 0,5 50 % 20 % 0,3 75 %

Beräkna substansmängd, molmassa och massa. Niklas Dahrén

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Sid i boken Rekrytering. Författare Annica Galfvensjö, Jure Förlag

WCMS-15, Webbutvecklare CMS

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

Databaser. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

Laganmälan & Laghantering

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Lite skoj - typ. 5DV085 - Programspråk. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

e-cm Elektronisk Cash Management dygnet runt, världen över.

Med detta och följande avsnitt blir det något svårare. Det finns också

Utvärdering av informationsinsatserna. Konflikten inom Väg och Ban Maj 2007

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

ATT KUNNA TILL. MA1050 Matte Grund Vuxenutbildningen Dennis Jonsson

Bortom fagert tal om bristande tillgänglighet som diskriminering

Friskoleurval med segregation som resultat

DATASAMORDNING NYHETERNA I CHAOS Utbildning Chaos/Handledning - Nyheterna i Chaos 3/

1. Frekvensfunktionen nedan är given. (3p)

TIMREDOVISNINGSSYSTEM

9. Between 10. Group by 11. Aggregatfunktionerna max, min, sum och avg 12. Nästlade sökningar

Tentamen för DD1370 Databasteknik och informationssystem

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Användarmanual och policy för Göteborgs Evenemangskalender på goteborg.com

ANVÄNDARHANDLEDNING FÖR

Guide för att hitta markavvattningssamfälligheter och täckdikningsplaner

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Flera nyanser av diskriminering

Brister i kunskap vid gymnasieval

Snapphanalegen. Firekángabogena. Spelregler. (4 spelare)

Anvisningar för att fylla i blanketten om arbetsstipendium för bild och formkonstnärer år 2016

Lathund för pedagoger Grundskola med:

Design och underhåll av databaser

Väga paket och jämföra priser

JÄMIX 2010 för Högskolan i Gävle

Tentamensdeltagare från Dataekonomutbildningen, Textilekonomutbildningen och Affärsinformatikutbildningen.

7. SAMHÄLLSORIENTERING ÅK 5

Vad är det som gör daytrading svårare än till exempel swingtrading? - De mentala aspekterna, du lever med dina trades in i minsta kursrörelse

Structured query language (SQL)

Höjd arbetsgivaravgift för unga. Konsekvenser för detaljhandeln

ETT TUNGT MEDIEPAKET 2016 VIN & BAR

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Transkript:

Påminnelse: Vad är en Databas? Databasteknik och informationssystem DD1370 F3 Petter Ögren Ett antal tabeller Referenser (pilar) mellan tabellerna Ex: register abc123 BMW 830101-0000 def100 Volvo 830101-0000 Ett urval ur databasen bestäms av en SQL-fråga Förra föreläsningen l SQL Structured Query Language F2 Idag Vad är en vy? (i SQL) Nu Ett sätt att se en databas En SQL-fråga som fått ett eget namn En ny tabell som får sitt värde definierat av andra tabeller Visa i Base 1

Create view as Create view as Select Skostorlek, avg( Lön ) from Anställd group by Skostorlek Create view Diskriminering as Select Skostorlek, avg( Lön ) from Anställd group by Skostorlek Ny tabell - Får värde från andra tabeller - Går att använda precis som vanliga tabeller SQL standard: - Create view Diskriminering as Select Skostorlek, avg( Lön ) from Anställd group by Skostorlek I Base: - I Base skriver vi bara frågan i ett annat fönster (Tabell/Skapa vy) Alltså: skriv precis som vanlig SQL-fråga (utan create view ) Diskriminering Skostorl. Avg( Lön ) 35 25000 40 26000 Skostorlek 35 20000 40 25000 35 Jasemine 30000 40 Kajsa 27000 Varför vill man söka från flera tabeller? Nu Vem äger bilen ABC123? Vilka bilar äger? Två sätt: - Sök först i ena, använd resultatet till att söka i andra - Kombinera tabellerna, sök i resultatet DEF100 Volvo 830101-0000 Sök först i ena, använd resultatet till att söka i andra Sök först i ena, använd resultatet till att söka i andra Vad heter den som äger bilen ABC123? - Hitta Pnr på den som äger bilen - Hitta Namn på den som har det Pnr Vilka bilar äger? - Hitta Pnr på - Hitta bilar som ägs av det Pnr DEF100 Volvo 830101-0000 Vad heter den som äger bilen ABC123? - Hitta Pnr på den som äger bilen DEF100 Volvo 830101-0000 Select Ägare from where RegNr = ABC123 - Hitta Namn på den som har det Pnr Select Namn from where Pnr = X - Kombinera Select Namn from where Pnr in (Select Ägare from where RegNr = ABC123 ) IN istället för = bra om hel tabell 2

Sök först i ena, använd resultatet till att söka i andra Sök först i ena, använd resultatet till att söka i andra - Select Telefon from where Pnr in (Select Ägare from where Modell = BMW ) - Select Modell from where Ägare in (Select Pnr from where Telefon = 070-000000 ) 070-000000 073-000000 930101-0000 Volvo 930101-0000 BMW Urval: in, not in Hur får vi en lista på alla bilägare? Select * from personer where Pnr in (select Pnr from bilägare) Alla icke-bilägare? Select * from personer where Pnr not in (select Pnr from bilägare) Nu Slå ihop tabeller: join on - Select * from join on Ägare = Pnr Slå ihop tabeller: join on - Select Name from join on Ägare = Pnr where RegNr = ABC123 3

Slå ihop tabeller: join on Slå ihop tabeller: join on - Select Name from join on Ägare = Pnr where RegNr = DEF100 - Select Modell from join on Ägare = Pnr where RegNr = DEF100 BMV Volvo BMV Volvo Slå hop tabeller utan join Nu Hittils - Select * from Tabell where Nu: - Select * from Tabell1, Tabell2 where Vad betyder det att lista flera tabeller? Raderna i Tabell1 kopplas ihop med raderna i Tabell2 i alla möjliga kombinationer Alla möjliga rad-kombinationer Hundar Ludde Select * from hästar, hundar Lady Lufsen 300kg 15kg 20kg Slå ihop tabeller: 2 olika sätt - Select * from join on Ägare = Pnr - Select * from, where Ägare = Pnr - Ger samma resultat Hästar Brunte 300kg Brunte 300kg Ludde 300kg Pålle 400kg Brunte 300kg Lady 15kg Brunte 300kg Lufsen 20kg Pålle 400kg Ludde 300kg Pålle 400kg Lady 15kg Pålle 400kg Lufsen 20kg Nya tabellen har N*M rader om N resp M rader från början. Här 2*3=6 rader. 4

- Select Namn from join on Ägare = Pnr where RegNr = ABC_% Idag 730101-0000 072-000000 - Select Namn from, where Ägare = Pnr and RegNr = 100 - Select Namn from, where Ägare = Pnr and RegNr = 100 order by Namn 730101-0000 072-000000 730101-0000 072-000000 - Select Namn from where Telefon is NULL order by Namn - Select Namn from where Lön < 27000 order by Namn 730101-0000 930101-0000 20000 830101-0000 25000 730101-0000 30000 5

- Select count( Modell ) from where Modell = Volvo - Select Modell, avg( Lön ) from join on Ägare = Pnr group by Modell 3 2 BMW 25000 Volvo 25000 BMW 30000 Volvo 25000 20000 930101-0000 20000 830101-0000 25000 730101-0000 30000 930101-0000 20000 830101-0000 25000 730101-0000 30000 - ett sätt att beskriva tabeller i databas Skriva SQL-frågor (step by step) Tabell en beskriver tabellnamn, kolumnnamn och primärnycklar För tabellerna nedan har vi en Primärnyckelskolumn(er) - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) Andra kolumner Primärnyckel: Unikt värde för varje rad 930101-0000 20000 830101-0000 25000 730101-0000 30000 Steg för att skiva SQL-frågor 1. Förstå en - Vilka tabeller finns - Vilka kolumner finns - Hur sitter tabellerna ihop (samband?) 2. Förstå vad som söks - Behövs info från en eller flera tabeller? 3. Hitta SQL-kommandon som plockar fram rätt info - Leta i SQL-kommandon som ingår i kursen 4. Kombinera ihop ovanstående Detaljerade SQL-uppgifter Lista alla (Pnr) som kört sin egen bil - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) (notera dubbla primärnycklar) - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) Lista alla som åkt i sin egen bil Lista alla som inte åkt i sin egen bil Lista alla som äger bil utan att ha kört den Hur många bilar äger de olika personerna? Lista vem som har kört vems bil (med namn) SELECT * FROM "" JOIN "Kört" ON ""."RegNr" = "Kört"."RegNr" AND ""."Ägare" = "Kört"."Pnr" 6

Lista alla (namn) som kört sin egen bil Lista alla som inte kört sin egen bil - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) SELECT "Namn" FROM "" WHERE "Pnr" IN ( SELECT "Pnr" FROM "" JOIN "Kört" ON ""."RegNr" = "Kört"."RegNr" AND ""."Ägare" = "Kört"."Pnr" ) SELECT "Namn" FROM "" WHERE "Pnr" NOT IN ( SELECT "Pnr" FROM "" JOIN "Kört" ON ""."RegNr" = "Kört"."RegNr" AND ""."Ägare" = "Kört"."Pnr" ) Lista alla som äger bil utan att ha kört den Hur många bilar äger de olika personerna? - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) SELECT "Namn" FROM "" WHERE "Pnr" NOT IN ( SELECT "Pnr" FROM "" JOIN "Kört" ON ""."RegNr" = "Kört"."RegNr" AND ""."Ägare" = "Kört"."Pnr" ) AND "Pnr" IN ( SELECT "Ägare" FROM "" ) SELECT "Ägare", COUNT( "Ägare" ) FROM "" GROUP BY "Ägare SELECT "Ägare", COUNT( "Ägare" ) FROM "" GROUP BY "Ägare ORDER BY COUNT( "Ägare" ) Lista vem som har kört vems bil Lista vem som har kört vems bil, med kolumnnamn Förarnamn och Ägarnamn - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) - (RegNr,Modell,Ägare) - (Pnr,Namn,Lön) select * from "Kört", "", "" where "Kört"."RegNr"=""."RegNr" and "Ägare"=""."Pnr" SELECT "Namn" AS "Förarnamn", "Ägarnamn" FROM "" JOIN ( SELECT "Kört"."Pnr" AS "Förare", ""."Namn" AS "Ägarnamn" FROM "Kört", "", "" WHERE ( "Kört"."RegNr" = ""."RegNr" AND "Ägare" = ""."Pnr" ) ) ON ""."Pnr" = "Förare" 7

Slut 8