Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afBjarne Olesen Redigeret for ca. et år siden
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):
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.