DATABASHANTERING f - PowerPoint PPT Presentation

About This Presentation
Title:

DATABASHANTERING f

Description:

DATABASHANTERING f r programmerare Lektion 5 Mahmud Al Hakim mahmud_at_hakimdata.se www.hakimdata.se * Repetition Svara p f ljande fr gor fr n Northwind databasen ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 31
Provided by: Windo1199
Category:

less

Transcript and Presenter's Notes

Title: DATABASHANTERING f


1
DATABASHANTERINGför programmerare
  • Lektion 5
  • Mahmud Al Hakim
  • mahmud_at_hakimdata.se
  • www.hakimdata.se

2
Repetition
  • Svara på följande frågor från Northwind databasen
    som finns på w3schools http//www.w3schools.com/
    sql/sql_tryit.asp
  • Visa en lista på alla kontaktpersoner?
  • Visa en sorterad lista (A-Ö) på kontaktpersoner?
  • Från vilka länder kommer kunderna?
  • Hur många kunder finns det i databasen?
  • Hur många kunder finns det i USA?
  • Hur många kunder finns det i varje land?
  • Visa en lista på alla kunder som har kontor i
    tyskland?
  • Visa information om kunden som har Berglund som
    efternamn?
  • Visa en lista på kunder som inte kommer från USA?
  • Lista land och antal kunder för länder som har
    mer än en kund?

3
Idag Avancerade frågor i MySQL
  • Koppla samman två tabeller
  • Underfrågor (nästlade frågor)

4
En Fråga?
  • Hämta de anställdas namn och namnen på de
    avdelningar där de arbetar?

5
Personal Avdelning
personalID namn befattning avdelningID
7513 Nina Larsson Programmerare 128
9842 Bengt Svensson DBA 42
6651 Arne Persson Programmerare 128
9006 Camilla Blom Systemadministratör 128
avdelningID namn
42 Ekonomi
128 FoU
6
Enkla frågor
  • Select namn
  • From personal

7
Enkla frågor
  • Select namn
  • From avdelning

8
Koppla samman två tabellerKartesiska produkten
  • Kartesiska produkten kryssprodukt
  • R X S
  • Den kartesiska produkten av två relationer är
    kombinationen av alla rader i den första med alla
    rader i den andra.
  • Select personal.namn, avdelning.namn
  • From personal, avdelning

9
Personal Avdelning
personalID namn befattning avdelningID
7513 Nina Larsson Programmerare 128
9842 Bengt Svensson DBA 42
6651 Arne Persson Programmerare 128
9006 Camilla Blom Systemadministratör 128
avdelningID namn
42 Ekonomi
128 FoU
10
(No Transcript)
11
Koppla samman två tabellerJOIN
  • Select personal.namn, avdelning.namn
  • From personal, avdelning
  • Where personal.avdelningID
  • avdelning.avdelningID

12
Personal Avdelning
personalID namn befattning avdelningID
7513 Nina Larsson Programmerare 128
9842 Bengt Svensson DBA 42
6651 Arne Persson Programmerare 128
9006 Camilla Blom Systemadministratör 128
avdelningID namn
42 Ekonomi
128 FoU
13
(No Transcript)
14
Använd alias !
  • Select personal.namn as personalnamn,
  • avdelning.namn as avdelningnamn
  • From personal, avdelning
  • Where personal.avdelningID
  • avdelning.avdelningID

15
(No Transcript)
16
Använd mer alias !
  • Select p.namn as personalnamn, a.namn as
    avdelningnamn
  • From personal p, avdelning a
  • Where p.avdelningID a.avdelningID

17
JOIN (INNER JOIN)
  • Select p.namn, a.namn
  • From personal p JOIN avdelning a
  • Where p.avdelningID a.avdelningID
  • Select p.namn, a.namn
  • From personal p JOIN avdelning a
  • ON p.avdelningID a.avdelningID

18
Mer JOIN
  • Vad händer i de fall då vi vill hitta rader i en
    tabell som inte har någon motsvarande rad i den
    andra tabellen?
  • Exempel
  • Sök efter anställda som inte ännu har haft några
    externa uppdrag.
  • Alltså anställda som inte finns med i tabellen
    uppdrag.

19
  • Select namn
  • from personal, uppdrag
  • Where personal.personaliduppdrag.personalid

20
LEFT JOIN
Select personal.namn From personal LEFT JOIN
uppdrag ON personal.personalIDuppdrag.personalID
21
LEFT JOIN
Select personal.namn, klientID From personal
LEFT JOIN uppdrag ON personal.personalIDuppdrag.p
ersonalID
22
IS NULL
  • Select personal.namn
  • From personal LEFT JOIN uppdrag
  • ON personal.personalIDuppdrag.personalID
  • Where klientID IS NULL

23
Underfrågor (nästlade frågor)
  • Vilka programmerare har haft externa uppdrag?
  • Steg 1Skapa en härledd tabellSelect
    personalID, namn
  • From personal
  • Where befattning Programmerare

24
(No Transcript)
25
Underfrågor med härledda tabeller
  • Steg 2Skapa ett alias för tabellen och använd
    den i en annan sats precis som vilken annan
    tabell.
  • SELECT programmerare.namn FROM
  • (Select personalID, namn
  • From personal
  • Where befattning Programmerare)
  • AS programmerare, uppdrag
  • Where
  • programmerare.personalIDuppdrag.personalID

26
(No Transcript)
27
Underfrågor för enskilda värden
  • Vilken anställd har arbetat flest antal timmar på
    ett uppdrag under en viss dag?
  • Steg 1SELECT MAX(timmar) from uppdrag

28
  • Steg 2
  • SELECT p.namn
  • FROM personal p, uppdrag u
  • WHERE p.personalID u.personalID
  • AND u.timmar(SELECT MAX(timmar) from uppdrag)

29
VTC - Querying Your Data
  • Gå till adressen http//www.alhakim.org
  • Ladda ner VTC filmer
  • Gå igenom på Querying Your Data
    filmer-Sorting Retrieved Data-Specifying
    Numbers of Results-Joining Tables-More On
    Joining Tables-Data Aggregation-Queries Syntax
    Recap

30
Övningar
  • Gå till adressenhttp//www.w3schools.com/sql/
  • Läs SQL Advanced kapitlet.
Write a Comment
User Comments (0)
About PowerShow.com