Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Databaser – SQL, Structured Query Language. 2 1. SQL Grundlæggende om SQL –select-udtryk –syntaks og semantik SQL og relationel algebra –mængdeoperationer.

Lignende præsentationer


Præsentationer af emnet: "Databaser – SQL, Structured Query Language. 2 1. SQL Grundlæggende om SQL –select-udtryk –syntaks og semantik SQL og relationel algebra –mængdeoperationer."— Præsentationens transcript:

1 Databaser – SQL, Structured Query Language

2 2 1. SQL Grundlæggende om SQL –select-udtryk –syntaks og semantik SQL og relationel algebra –mængdeoperationer (forenings-, fælles- og differensmængde) –natural join –tupel-variabler –opdateringer Goodies –ordning –aggregeringsfunktioner –DDL

3 3 Select-statement SQL’s select-statement ser typisk ud som følger: selectA 1, A 2,..., A n fromr 1, r 2,..., r m whereP  : project  : kartesisk produkt  : selection predicate A i : attribut r i : relation P : prædikat hvor (for alle i, 1  i  n):

4 4 Syntaks og semantik SelectStatement ::= ”select” [ ”distinct” | ”all” ] ( AttributeList | ”*” ) ”from” RelationList [ ”where” Predicate ] select distinctA 1, A 2,..., A n fromr 1, r 2,..., r m whereP  A1, A2,..., An (  P (r 1  r 2 ...  r m ))  3. 1. 2.

5 5 Eksempel-relation TitleMonthDayYearTheaterPerfs My Fair Lady3151956Mark Hellinger2717 Man of La Mancha11221965ANTA Wash. Sq.2329 Oklahoma!3311943St. James2248 Hair4291968Biltmore1750 The King and I3291951St. James1246 Guys and Dolls11241950Forty-Sixth St.1200 Cabaret11201966Broadhurst1166 Damn Yankees551955Forty-Sixth St.1019 Camelot1231960Majestic878 West Side Story9261957Winter Garden732 Populære amerikanske Broadway Musicals (PABM)

6 6 En eksempel-relation Musical-skabere (MC) TitleBookLyricsMusic My Fair LadyLerner Loewe Man of La ManchaWassermanDarionLeigh Oklahoma!Hammerstein Rodgers HairRagni & Rado MacDermot The King and IHammerstein Rodgers Guys and DollsSwerling & Burrows Loesser CabaretMasteroffEbbKander Damn YankeesAbbott & WallopAdler & Ross CamelotLerner Loewe West Side StoryLaurentsSondheimBernstein

7 7 Eksempel,  (1)  (PABM, Perfs > 2000) select* fromPABM wherePerfs > 2000 TitleMonthDayYearTheaterPerfs My Fair Lady3151956Mark Hellinger2717 Man of La Mancha11221965ANTA Wash. Sq.2329 Oklahoma!3311943St. James2248

8 8 Eksempel,  (2)  (PABM, Theater = Forty-Sixth St.) select* fromPABM whereTheater = ”Forty-Sixth St.” TitleMonthDayYearTheaterPerfs Guys and Dolls11241950Forty-Sixth St.1200 Damn Yankees551955Forty-Sixth St.1019

9 9 Eksempel,   (  (PABM, Theater = Forty-Sixth St.), Title, Perfs) selectTitle, Perfs fromPABM whereTheater = ”Forty-Sixth St.” TitlePerfs Guys and Dolls1200 Damn Yankees1019

10 10 Mængdeoperationer I SQL er det muligt at udtrykke de tre mængdeoperationer union (  ):SelectStmt union SelectStmt intersect (  ):SelectStmt intersect SelectStmt difference (  ):SelectStmt minus SelectStmt Eksempler select* fromPABM wherePerfs > 2000 union select* fromPABM whereMonth = 3 selectTitle fromPABM wherePerfs > 2000 intersect selectTitle fromMC whereBook = Lyrics

11 11 Test for ”membership” (  ) SQL trækker på elementer fra relationskalkylen til at teste på om en tupel er element i en relation. Eksempel: Vi er interesseret i alle show, opført efter 1960, hvor bogen og lyrikken er skrevet af de samme forfattere. select distinctTitle fromPABM whereYear >= 1960 and Title in( select Title from MC where Lyrics = Book )

12 12... i småbidder select Title from MC where Lyrics = Book Title My Fair Lady Oklahoma! Hair The King and I Camelot

13 13... i småbidder select distinct Title fromPABM whereYear >= 1960 and Title in (x) Title Hair Camelot

14 14 ’all’, ’some’ og ’exists’ I SQL er det muligt i et prædikat at skrive A  all RA  some Rexists R hvor  betegner en af de relationelle operatorer, , ,, =, . Betydningen er A  all R  (  x | x  R : A  x) A  some R  (  x | x  R : A  x) exists R  R  Ø Specialtilfældet ’= some’ har vi set før. Hvor?

15 15 Natural join I SQL er det ikke muligt direkte at udtrykke natural join, men da natural join er defineret i termer af kartesisk produkt, select og project, er det en smal sag at realisere join i SQL. r  s =  R  S (  r.A1 = s.A1  r.A2 = s.A2 ...  r.An = s.An (r  s)) Ovenstående er under antagelse af at vi opererer med relationer r og s med respektive skema R og S hvor R  S = { A 1, A 2,..., A n }.

16 16 Eksempel,  WhereAuthor TitleTheater My Fair LadyMark Hellinger Oklahoma!St. James HairBiltmore TitleBook My Fair LadyLerner Oklahoma!Hammerstein The King and IHammerstein Where  Author TitleTheaterBook My Fair LadyMark HellingerLerner Oklahoma!St. JamesHammerstein selectTitle, Theater, Book fromWhere, Author whereWhere.Title = Author.Title

17 17 Tupel-variabler SQL har lånt idéen om tupel-variabler fra tupel-relationskalkylen. Tupel-variabler er specielt nyttige til at sammenligne tupler fra samme relation. I den situation benytter den relationelle algebra sig af omdøbning (rename). Eksempel: Vi er interesseret i alle show der har været opført samme sted som My Fair Lady. select distinctT.Title fromPABM S, PABM T whereS.Title = ”MyFair Lady” and S.Theater = T.Theater

18 18 Opdateringer Sletningdelete r where P Indsættelseinsert into r values (a 1, a 2,..., a n )(null) insert into r SelectStmt Opdateringupdate r set A = Exp where P

19 19 Goodies I SQL er det muligt at ordne resultatet af en forespørgsel, ligesom det er muligt at benytte såkaldte aggregeringsfunktioner. Mulighe- derne er sammenfattet i følgende syntaksdefinition: SelectStatement ::= ”select” [ ”distinct” | ”all” ] ( AttributeList | ”*” ) ”from” RelationList [ ”where” Predicate ] ( [ ”order by” (Attribute Order) + ] | [ ”group by” AttributeList [ ”having” Predicate ] ] ) Order ::= ”asc” | ”desc”

20 20 Ordning Eksempel selectTitle, Month, Day, Year fromPABM whereYear >= 1960 order by Year desc, Month desc, Day desc TitleMonthDayYear Hair4291968 Cabaret11201966 Man of La Mancha11221965 Camelot1231960

21 21 Aggregeringsfunktioner I SQL er det muligt at beregne funktioner over grupper af tupler ved hjælp af ’group by’. Tupler med samme værdi på attributter opremset i ’group by’, grupperes sammen. Der kan udvælges på gruppeniveau med ’having’. Følgende aggregeringsfunktioner er tilgængelige i SQL: avgaveragesumsum minminimumcounttæller maxmaximum Eksempel selectTheater, avg (Perfs), count (Title) fromPABM group by Theater havingavg (Perfs) > 100

22 22 DDL Relationer oprettes, slettes og ændres som følger: Opretcreate table r (A 1 D 1, A 2 D 2,..., A n D n ) Sletdrop table r Ændralter table r add A D A i : attribut D i : domæne hvor (for alle i, 1  i  n):


Download ppt "Databaser – SQL, Structured Query Language. 2 1. SQL Grundlæggende om SQL –select-udtryk –syntaks og semantik SQL og relationel algebra –mængdeoperationer."

Lignende præsentationer


Annoncer fra Google