4 SQL Teil 1
4 SQL Teil 1
Die Folien bauen auf dem Foliensatz zum Buch und den von Prof. Dr.-Ing.
Norbert Fuhr in den vergangenen Semestern verwendeten Folien auf.
Um was geht‘s?
Wir wollen lernen, wie wir in Datenbanken (komplexe)
Abfragen erstellen können, um Daten abzufragen,
zusammenzustellen, zu aggregieren und zu verändern.
Kapitel 4: SQL
Vorgänger Nachfolger
Uni-Schema VorlNr
N M
MatrNr SWS
hören Vorlesungen
Name M
Studenten N Titel
N
N M
Semester
PersNr
1 1 Rang
0. Kurzeinführung
§ Datendefinition
§ Veränderungen am Datenbestand
§ Einfache Anfragen
8
Datenbanken: SQL
10
Datenbanken: SQL
Veränderungen am Datenbestand
Studenten
MatrNr Name Semester
…
29120 Theophrastos 2
29555 Feuerbach 2
28121 Archimedes -
Veränderungen am Datenbestand
WS 2022/23 13
Datenbanken: SQL
Einfache SQL-Anfrage
15
Datenbanken: SQL
1. SQL-Anfragen
§ Sortierung
§ Duplikateliminierung
§ SQL vs. Relationenalgebra / Tupelkalkül
§ Anfragen über mehrere Relationen
§ Kanonische Übersetzung in relationale Algebra
§ Tupelvariablen
§ Mengenoperationen
Sortierung
Duplikateliminierung
Rang
C4 Rang
C4 C3
C3
C4
C3
C3
C4
C4 18
Datenbanken: SQL
aber:
§ SQL arbeitet faktisch mit Listen von Tupeln
→ die Reihenfolge kann beeinflusst werden (ORDER BY)
→ Duplikate werden nicht automatisch eliminiert (DISTINCT)
Professoren Professoren
PersNr Name Rang Raum VorlNr Tite SWS gelesenVon
2125 Sokrates C4 226 5001 Grundzüge 4 2137
2126 Russel C4 232 5041 Russel 4 2125
…
…
5049 Mäeutik 2 2125
2137 Kant C4 7
…
4630 Die 3 Kritiken 4 2137
Verknüpfung
Datenbanken | Prof. Dr. Dirk Lewandowski | WS 2022/23 x 22
Datenbanken: SQL
PersNr Name Rang Raum VorlNr Titel SWS gelesenVon
2125 Sokrates C4 226 5001 Grundzüge 4 2137
2125 Sokrates C4 226 5041 Ethik 4 2125
…
…
2125 Sokrates C4 226 5049 Mäeutik 2 2125
…
…
2126 Russel C4 232 5001 Grundzüge 4 2137
2126 Russel C4 232 5041 Ethik 4 2125
…
…
2137 Kant C4 7 4630 Die 3 Kritiken 4 2137
Auswahl
PersNr Name Rang Raum VorlNr Titel SWS gelesenVon
2125 Sokrates C4 226 5049 Mäeutik 2 2125
Projektion
§ Bei mehreren Relationen (auch mehrfachem Bezug auf dieselbe Relation) müssen in
der Regel Tupelvariablen verwendet werden
§ Als implizite Tupelvariablen können die Namen der Relationen verwendet werden
§ Das geht aber nur, wenn für jede Relation nur eine Tupelvariable benötigt wird
Datenbanken | Prof. Dr. Dirk Lewandowski | WS 2022/23
25
Datenbanken: SQL
Explizite Tupelvariablen
werden im from-Teil deklariert:
Beachte: Die Tupelvariablen müssen in allen Teilen der Anfrage verwendet werden, nicht
nur im where-Teil
Tupelvariablen: Veranschaulichung
Welcher Professor liest „Mäeutik“?
…
2126 Russel C4 232
…
5049 Mäeutik 2 2125
2127 Kopernikus C3 310
5052 Logik 4 2125
2133 Popper C3 52
5216 Wissenschaftstheorie 3 2126
2134 Augustinus C3 309
5216 Bioethik 2 2126
2136 Curie C4 36
5259 Der Wiener Kreis 2 2133
2137 Kant C4 7
5022 Glaube und Wissen 2 2134
27
4630 Die 3 Kritiken 4 2137
Datenbanken: SQL
Tupelvariablen – Merke:
§ Zur Sicherheit immer Tupelvariablen verwenden
§ wer selten Tupelvariablen verwendet, merkt oft nicht, wenn es ohne sie nicht geht
Mengenoperationen
Mengenoperationen union, intersect, minus
(Anleihen an der Relationenalgebra)
( select a.Name
from Assistenten a)
union
( select p.Name
from Professoren p);
30
http://hyper-db.com/interface.html
Datenbanken | Prof. Dr. Dirk Lewandowski | WS 2022/23
31