088f-e191-4e02-90ac-0e599c398fbf-1.pdf
Document Details
Tags
Full Transcript
Zusammenfassung SQL Abbildung 1: Quelle Tafelwerkergänzungen Inhaltsverzeichnis 1. Vergleichsoperatoren................................................................................................................................... 2 2. L...
Zusammenfassung SQL Abbildung 1: Quelle Tafelwerkergänzungen Inhaltsverzeichnis 1. Vergleichsoperatoren................................................................................................................................... 2 2. Logische Operatoren, Bereich, NULL-Werte.............................................................................................. 3 3. Platzhalter.................................................................................................................................................. 4 4. Sortieren..................................................................................................................................................... 5 5. Joins (Verknüpfungen)............................................................................................................................ 6 6. Aggregatfunktionen................................................................................................................................. 8 7. Gruppierungen........................................................................................................................................... 9 8. Geschachtelte SQL-Abfragen................................................................................................................... 11 BY C. GÄRTNER 1 Zusammenfassung SQL 1. Vergleichsoperatoren Vergleichsoperator Erklärung < Kleiner > größer = Größer gleich = gleich ungleich Beispiel: Gesucht sind alle Buchshops in München. SELECT Buchshop FROM Lesung WHERE Ort = 'München' Ergebnis: BY C. GÄRTNER 2 Zusammenfassung SQL 2. Logische Operatoren, Bereich, NULL-Werte Logischer Operator Erklärung AND ermöglicht die Existenz von mehreren Bedingungen in einer WHERE-Klausel einer SQL-Anweisung. OR wird verwendet, um mehrere Bedingungen in einer SQL- Anweisung WHERE-Klausel zu kombinieren. IN wird verwendet, um mehrere Abfrageergebnisse in einer SQL- Anweisung zu bündeln LIKE Der LIKE-Operator wird verwendet, um einen Wert zu ähnlichen Werten mit Wildcard-Operatoren zu vergleichen. IS NULL wird verwendet, um einen Wert mit einem NULL-Wert zu vergleichen. NOT kehrt die Bedeutung des logischen Operators um BETWEEN wird verwendet, um Werte zu suchen, die innerhalb eines Satzes von Werten sind, den Minimalwert und den Maximalwert angegeben. Beispiel 1: Gesucht sind alle Buchshops in München, die bei einer Lesung ihren Lektoren ein Honorar von mehr als 1000 Euro gezahlt haben. SELECT Buchshop FROM Lesung WHERE Ort = 'München' AND Honorar > 1000 Ergebnis: Beispiel 2: Gesucht sind die Namen aller Buchhandlungen in München, Berlin und Köln. SELECT NameB FROM Buchhandlung WHERE OrtB IN ('München', 'Berlin', 'Köln') Ergebnis: BY C. GÄRTNER 3 Zusammenfassung SQL 3. Platzhalter Der LIKE-Operator erlaubt bei Auswahlkriterien vom Typ Text die Verwendung von Platzhaltern. Das Prozentzeichen ("%") dient dabei als Platzhalter für beliebig viele Zeichen, der Unterstrich ("_") als Platzhalter für genau ein Zeichen. Beispiel: Gesucht sind alle Personen, die in Bonn wohnen. SELECT Name, Ort FROM Person WHERE Ort LIKE '%Bonn' Ergebnis: BY C. GÄRTNER 4 Zusammenfassung SQL 4. Sortieren Die SQL ORDER BY-Klausel ermöglicht eine Sortierung auf der Grundlage einer vorher definierten Sortierungsreihenfolge. ASC: Das Ergebnis wird aufsteigend sortiert DESC: Das Ergebnis wird absteigend sortiert Beispiel à aufsteigende Reihenfolge Gesucht sind die Autoren (Kürzel), Buchshops und gezahlten Honorare in München. Die Ergebnistabelle soll aufsteigend nach Höhe der Honorare sortiert sein. SELECT Autor, Buchshop, Honorar FROM Lesung WHERE Ort = 'München' ORDER BY Honorar ASC Ergebnis: BY C. GÄRTNER 5 Zusammenfassung SQL 5. Joins (Verknüpfungen) Einfache Verknüpfung Beispiel: Gesucht sind Namen und Orte aller Herausgeber. SELECT Name, Straße, Ort FROM Herausgeber INNER JOIN Person ON Herausgeber.KürzelH = Person.Kürzel Tabelle: Herausgeber Tabelle: Person BY C. GÄRTNER 6 Zusammenfassung SQL Mehrfachverknüpfung Beispiel: Gesucht sind die Titel der Bücher mit dem zugehörigen Kürzel und der Email-Adresse des Herausgebers. Schematische Darstellung zum Erhalt der Informationen: Buch (ISBN, Titel, Typ, Jahr, …) Entscheid ( KürzelH, KürzelL, ISBN, …) Herausgeber ( KürzelH, Email, Arbeitgeber, …) Gesamte Abfrage in SQL: SELECT Titel, KürzelH, Email FROM Buch INNER JOIN Entscheid ON Buch.ISBN = Entscheid.ISBN INNER JOIN Herausgeber ON Entscheid.KürzelH = Herausgeber.KürzelH BY C. GÄRTNER 7 Zusammenfassung SQL 6. Aggregatfunktionen Mit SQL Aggregatfunktionen, wie z.B. SUM() oder AVG(), können Tabellenspalten auf ihre Werte berechnet oder zusammengefasst werden. SQL verfügt über mehrere arithmetische Funktionen: AVG ermittelt den Mittelwert der Werte eines Attributes (Spalte) SUM Summe eines Attributs MAX Maximum eines Attributes MIN Minimum eines Attributes COUNT zählt alle Tupel bzw. Zeilen (auch Null-Werte) Beispiel: AVG Gesucht ist das Durchschnittsgehalt aller Lektoren. SELECT AVG(Gehalt) AS Durchschnittsgehalt FROM Lektor BY C. GÄRTNER 8 Zusammenfassung SQL 7. Gruppierungen Mithilfe der GROUP-BY Klausel können Datensätze in Gruppen eingeteilt werden. Dabei wird jeder Datensatz genau einer Gruppe zugeordnet. Dieser SQL-Befehl wird häufig in Kombination mit den Aggregatfunktionen (COUNT etc.) verwendet. Allgemeines Beispiel: Gegeben ist ein Ausschnitt einer Datenbank eines Autohauses. Abfrage 1: Ein Kunde möchte einen Überblick über die Anzahl der Fahrzeuge nach den jeweiligen Baujahren haben. BY C. GÄRTNER 9 Zusammenfassung SQL Abfrage 2: Anschließend möchte der Kunde nur die Baujahre sehen, für die mehr als ein Fahrzeug zur Wahl steht. Hinweis: HAVING ermöglicht die gruppierte Ergebnismenge noch einmal einzuschränken. Abfrage 3: Zusätzlich möchte der Kunde nur die Fahrzeuge sehen, deren Kilometerstand unter 30.000 ist. Achtung: In diesem Fall wird nicht die gruppierte Ergebnismenge eingeschränkt. Es sollen schon im Vorhinein (mithilfe von WHERE) einzelne Gruppen ausgeschlossen werden. Beachte: HAVING ermöglicht die gruppierte Ergebnismenge noch einmal einzuschränken. Allgemein gilt: Aggregatfunktion in WHERE nicht möglich. Die HAVING-Klausel kann nur auf Spalten angewendet werden, die auch Teil einer GROUP BY-Klausel oder einer Aggregatfunktion sind. BY C. GÄRTNER 10 Zusammenfassung SQL 8. Geschachtelte SQL-Abfragen Geschachtelte SELECT Klausel mit WHERE SQL-Abfragen können wiederum selbst als Bedingung für eine weitere Abfrage dienen. Unterabfragen werden in runde Klammern gesetzt und vom Interpreten zuerst ausgewertet. Problemstellung: Gesucht sind die ISBN der Bücher mit einem Preis, welcher über dem Durchschnitt liegt. Bisherige Vorgehensweise: 1. Ermitteln des Durchschnittswertes (Hilfsanfrage): SELECT AVG (VK) AS Durchschnittspreis FROM Entscheid 2. Einfügen des ermittelten Durchschnittswertes in die Zielanfrage: SELECT DISTINCT ISBN, VK FROM Entscheid WHERE VK > 76.32 Lösung mithilfe einer geschachtelten SQL-Abfrage SELECT DISTINCT ISBN, VK FROM Entscheid WHERE VK > (SELECT AVG (VK) AS Durchschnittspreis FROM Entscheid) BY C. GÄRTNER 11 Zusammenfassung SQL Beachte: In der WHERE-Klausel der Hauptabfrage einer geschachtelten SELECT-Anweisung dürfen nur Vergleichsoperatoren oder der IN-Operator verwendet werden. In der SELECT-Klausel der Unterabfrage darf nur eine Spalte angegeben werden. Wird In der WHERE-Klausel der Hauptabfrage ein Vergleichsoperator benutzt, darf die Unterabfrage nur einen einzigen Wert als Ergebnis liefern. Häufig eigenen sich hier Aggregatfunktion, da sie nur einen Wert zurückliefern (siehe Beispiel oben). Geschachtelte SELECT Klausel – weitere Einsatzmöglichkeiten Unterabfragen, die genau eine Zeile und eine Spalte liefern, können an allen Stellen eingesetzt werden, an denen auch andere Platzhalter (Spalten, Literale) verwendet werden können. Hierzu folgende Beispiele: a) SELECT artikel_nr, bezeichnung, (SELECT SUM(anzahl*preis) FROM auftrag_pos p WHERE p.artikel_nr = a.artikel_nr) AS Umsatz FROM artikel a Hinweis: Hinweis: p und a werden als Alias für die Tabellen auftrag_pos und artikel genutzt. Interpretation: Liste ArtikelNr, Bez. und errechneten Umsatz aller angegebenen Artikel auf. BY C. GÄRTNER 12 Zusammenfassung SQL b) SELECT artikel_nr, bezeichnung FROM artikel a ORDER BY (SELECT SUM(anzahl*preis) FROM auftrag_pos p WHERE p.artikel_nr = a.artikel_nr) ASC Interpretation: Liste ArtikelNr, Bez. aufsteigend sortiert nach Umsatz auf. BY C. GÄRTNER 13 ( ",'7 i-ö *2 76 Spalle Ktrzei i 83 76 Spaite Name Texi 25 1.4. ACCES§-Tabelienbeziehr:ngen a4 85 7§ Spalte 7A Cna:+5 n* ,; ZähI q tJb zo süaiie Teleton 87 C Tabelle Verfasser Bg - 87 -Eiqenschaft Oefinition ''*"lahr 89.87 Elqenschaft ErsteliqnqsC 27.42.97 e0 87 Eiqenschaft Zulelz! 27.C?.97 of 87 Elqenschaft Hec-ord iC 9_? 87 Elqenschaft Sot-tierunq Faisch or: §palte 8?- Kürzelv Text 'iext 5 87Spalte Akad-Tltei z_tL OE 87§p,aite, AnzPücr-ret ,"n..,:*'..,'.-." 90. o'7...-8la-bp.ils.. Verkquf Eisensehaft Definltian Wahr -s6.98 96 Eiqqnscheft ErSlellunq§d 2?..!2.9? oo 96 EiqenschaJi Zulet4 27,Ü2.97 1q0 9Q Ei-qenschafl Record.45 '!01 96 Eiqenscheft Sertierunq Fclcsh 142 96 SpAlte NamqB Text äo 103 96 Spalte OriB Te_xt 25 4AA IW 95 Spalte ISBN Zahl 8- iös 96 §salte Msnal Zahl I 106 96 Spalte Anzahl Zahl 8 {.5 Datenanfangszustand Datei sql00.mdb Bf 8377121 Fe 8377435 EP 8377568 GS2 83771?-1 GSz 84:11599 GW 834s.!1§_ !-is3 8343269 i-{sS_ 8343933 JH 8343112 JLi Bq€06? LQ 8343462 LC g343167 LC 8343489 FW 8343269 PW 8343339 RK 8343456_ BK 8U3457 EK 8:344121 BK 8344138 nK 8344244 Prof. Zschau - SOL01.d@ - 26.02-97 '13:07 Prol. zshau - SOL01.dm - 26.02.97 l3:07 1-9 1-10 RK 834431 CL MB 8343118 2000 54 TH 8343679 1 CL MB 8343662 2000 79.9 wL 8343462 CL MB 8343679 3000 69 wL 8343467 HS MB 841 1599 3500 64,8 wL 8343489 HS2 GV 8377121 1000 120 HS2 GV 837743s 2500 148 Buch HS2 GV 8377568 l2o0 99.8 i-l§E[--f---- ä---T rvo i.latrrllunlFretrsebietl=adCIE-i PS AS 8343489 5000 74.9 ,AeaStfZ Leoacv- S 1994 Datenbanke CL PS Lrö 8343489 5000 74.9 '83431 1B Neue Datenbanken S 1995 Datenbanke CL WA Gs 8343269 3000 77,8 3343269 Betriebssvsteme I M 19BB 'l lnf. Prakt. CL2 WA GS 8343333 3000 77.8 8343333 Betriebssvsteme ll M 1992 1 Prakt.lnf. WA WA GS 8344311 3000 , 49.9 8343456 Rechnernetze M '1991 1 Prakt.lnf. QL2 WA GV 8343269 3000 77.8 8343457 Rechnernetze M 1992 2 Prakt. lnt. WA WA GV 8343333 3000 77,8 8343462 Alqorithmen M 1S8S 1 Theor. lnf. CLz WA ME 8343269 3000 77,8 8343467 Alqorithmen M 1991 2 Theor. lnf. CLz WA MB 8343333 3000 77.8 8343489 Aloorlthmen M 1995 3 Theor. lnf. PS ,8343662 Qatenmanaoement M 1993 1 Datenbanke CL -.8343679 Datenstrukturen M 1993 1 Datenbanke CL 8344121 Rechnerstrukturen M 1986 1 Prakt. lnf. CL? AS TU Dresden [email protected] 3117657743 8344138 Rechnerstrukturen M '1988 2 Prakt.lnf, CA GS Uni [email protected] 408662140 8344244 Flechnerstrukturen M 1991 3 Prakt.lnf. CN*2 GV TH Aachen [email protected] 2418021055 8344311 Rechnerstrukturen M 1995 4 Prakt. lnf. W4 MB FU Berlin [email protected] 3086785442 8377121 Anatomie S 1992 Medizin l-{S2 8377435 Plastische Chiruqie M 1993 1 Medizin H§2 Lektor 8377568 Anatomie ll S 1995 Medizin HS2 8411599 Theoretische M 1993 1 Phvsik HS CL Datenbanke 921003 1 101992 43000 cL2 cL? lnformatik 866778 1011986 51 200 HS Phvsik 881335 1071988 52300 HS2 Medizin 88241 1 1 101988 4950ü HS Auqustinus Aachee Kerres Haven PS Theor. lnf. 931 175 1011993 45300 cL2 Ferbersche Gießen Felber Maver WA Prakt. lnf. 922134 1111992 42400CL2 Herder Freiburq Herder Herder Huqendubel ltfiünchen Baver Meier Krüper Münstel Krüper Becker Lanqe und Sprinqer Berlin Sprinqer Lanqe BP Krüoer Münster 12JA.97 600 Maversche Aachen Faiter Peters BP Maversche Aachen 14.10.97 450 Maversche Köln Falter Peters BP Uptodate Gießen 10.10.97 500 Unlversitätshuchhan.Auqsburg Frankenne Peters GS2 Herder Freiburq 30.11.96 800 Universitätsbuchhan Freiburq Kaiserstuhi Kurbel GS2 Huoendq§el M[i1ghen ?0.04.95 1 000 Universitätsbushhan KobienZ Michaelis Sievers GW Auqustirrus Aachen 20.05.96 400 Universitätsbuchhan Konsianz Beckers Grobian GW Herder - Frgiburo.05.96 2"1 650 Unlversitätsbuchhan Reqensburo Koeniu Petennann JH !-luoeldubel ltilünchen 13.05.97 900 Universitälsbuchhan Trier Schmitz Wolters TH Huoendubel München 20.03.96 1 200 UDtodate Gießen Schleqel Sommerkor Person Entscheid i-Lt*r.."r[l-rtirrcE- AS Scharpinq Praqer Str" 76 13753 Dresden 31 17657750 cL AS 8343679 3000 69 BP Pertino tsritta 68632 25327854 cL GS 8343112 2000 49 CL Laster Christa Tierqartenstr. 2 622140178 cL GS 8343118 200C 54 cL2 Liebster Claus Popoeldorfer Allee 53315 Bcnn ?28975750 cL GV 8343662 2000 79,9 GS Stoever Gerd Lanqe Laube 22 20812 Hamburq 408662134 cL MB 834311?. 2000 49 GS2 Schuster Georc 4086il783 Pfof. Zschau - SQL0I.dcc - 26.02.97 13:07 Pro,. Zschau - SqL01..r( )02.?7 13:07 (.14._. i i-i2 L:V Vahlen cefharc Ahornaiige 75 52072 Aachqn 24:!8Öä105i Krüoei' Münster uv$ WaechterQerd S s603.2 Eaitnhofstr. 581 34r.356 K!'üBer MünSler -schumachei Heinz Ffqmmestr^ 33 52C72 r\achen 241987667 Krü0er Münster H§2 Schurnagher l-indenaliee l. 500J2 Köln 2?1?6:648 KüPet 1.,4ünstgr HS3 Sqhütle Herbert Paulusweq 7 48161 Münster 2A1E3,456v Küper Müns_iFr JH Heimiich Josef 3€1 6745 J Krüoer Münster Cia_usinqj-eo Hirrcien'o,uro.'ülalz 48151Munster ?51843221 Krüper Mün§ter Besserle iüaria P€reetuumweu 6 100i3 Berlin. M_B 3CI3344-213 Krüper Münstef OQ §qhmit_zPeler Caecilienallee33 54175Ko-ble!.'z ?6136749 Kniper Mürcler PW wa§henhusen Fetra Walterstr. 35 48153 Münstet 2§1927512E Krüper Münetei RK Kohi Henate 30€645366 Münstpr TH Heimlicher Trr,ide 37V54788-? Münster wß ruOrecf,t truärneL Karnillensir. 25 531 11 Eonn ie.Atl.4si Trier WL Labisto Will! Adalbertweq 4 5?AA2 Aachen 241567893 Uptocjate Uptodate Prof. Dr. 0 UptqdaE) uvv Dipl.'KJm, 3 Upiodqie- H§3 Pipl.:ldorm. 1 Uplodate Uplcdale JH 11r.. v!-: -inn !r.,9. 3 PW Dipl.-Ma!h. A RK Froi. Dr. I TU tll Frof. D=f, 5 WL Dipl--lnq. 2 Auqustinus Aachen q343662 Auqustinus AaCh-en 8343062 8343062 9410 103 Auqustinqs Aaphen E34360? 9412 g§Q1 34 Aaqhqn ArlglrStlnfs 8343662 4? Ausustjnus Aach€n 834060.2 9505 33 AuqustiiiusAephen E3436Zg 9410 224 Auqustinus Aac,hen I 834'3679 941 1 187 Aachen Auaus-iinr:s 834367-9 94-';? 14 Auqusllnus AaQhen 8343079 9502 32 Auquslinqs Aachen 9343Q79 9505 31 l-ler:der Freibufq E-37712X 950_1 44 HQrder Frelburq 8377121 95q2 32 Herder Freibqrq 8377121 9503 38 H fder Freiburq 8377121 9504 25 H-e-rder Freiburq 8377568 501 134 Helder Freiburq 8377568 9§-02 1?O Freiburq 8377558 9504 g50s 98 i'ierCe-r Freibqrq 8s77568 E7 Huqgndubel München 8343489 9503 1-3,3 HucendubeL MÜnchen Q34,3489 9504 84 Huqendubel München 8343679 941C 4,30 Huqendubel M-ünchen 89!3679- 941 -2 54 Huqendubel Münqhen 8343679 9s02 73 Prof. Zschau - SGL01.dcc - ?6.02.97 13:07 Prof- zschau - SOL01.&c - 26.A2.37 i3tl7