SQL

Werbung
Geodatenbanken
SQL
Q
Ad i O t
Adrian Ostermann, Pascal Offermann
P
l Off
Einführung in SQL
Einführung in SQL
• Was ist
Was ist SQL?
• SQL steht für Structured Query Language
• Datenbanksprache zur Definition von Datenstrukturen (DDL) in relationalen Datenbanken b k
• Was kann SQL?
• Befehle
Befehle zur Datenmanipulation (Ändern, Einfügen, Löschen) und lesendem zur Datenmanipulation (Ändern Einfügen Löschen) und lesendem
Zugriff (DML)
• Abfragen aus einer Datenbank (DRL)
• Befehle für die Rechteverwaltung und Transaktionskontrolle (DCL)
Befehle für die Rechteverwaltung und Transaktionskontrolle (DCL)
• Wichtige Befehle
• CREATE TABLE, DROP TABLE, INSERT, SELECT, UPDATE, DELETE
Struktur des SELECT Befehls
Struktur des SELECT ‐
• Der select‐Befehl hat im Wesentlichen die Struktur :
D
l t B f hl h t i W
tli h di St kt
 select ...  from ...  where ...  group by ... b
 having ... y
 order by ... Auflistung von Attributen oder Ausdrücken mit Attributen und Funktionen Auflistung der beteiligten Tabellen Auswahlbedingung über die Datensätze Z
Zusammenfassung der Datensätze in Gruppen f
d D t ät i G
Auswahlbedingung über die Gruppe Attribute oder Ausdrücke für die Ausgabesortierung g
g
JOIN Funktionen in SQL
JOIN Funktionen in SQL
• Mit „Joins“ lassen sich die Spalten verschiedener Tabellen über den Mit J i “ l
i h di S lt
hi d
T b ll üb d
PRIMARY KEY verknüpfen:
 INNER JOIN: Gibt
INNER JOIN: Gibt alle Zeilen zweier Tabellen wieder, wenn
wieder, wenn mind. Eine
mind. Eine
Übereinstimmung besteht
 LEFT JOIN: Gibt alle Zeilen der ersten Tabelle wieder und die zugehörigen aus
der zweiten Tabelle
der zweiten
 RIGHT JOIN: Gibt alle Zeilen der zweiten Tabelle wieder und die zugehörigen
aus der ersten Tabelle
 FULL JOIN: Gibt alle Zeilen wieder, wenn wenigstens eine Übereinstimmung
Ü
besteht
SQL Funktionen
SQL Funktionen
• SQL aggregate functions geben
SQL
t f ti
b einen
i
W t ü k d
Wert zurück, der aus
d
den Spaltenwerten berechnet wird
• Wichtige Funktionen:
 AVG() ‐ Returns the average value
 COUNT() ‐ Returns the number of rows
 FIRST() ‐ Returns the first value
 LAST() ‐ Returns the last value
 MAX() ‐
MAX() Returns the largest value
Returns the largest value
 MIN() ‐ Returns the smallest value
 SUM() ‐ Returns the sum
Beispiel: Abfrage
Beispiel: Abfrage
• Gib alle Professoren mit ihren Personalnummern und der Anzahl der Gib ll P f
it ih
P
l
d d A hl d
Vorlesungen, die sie lesen, aus – aufsteigend sortiert nach der Anzahl g
der Vorlesungen.
Select
p.Name, p.PersNr, count(v.Titel) as Anzahl
FROM
Professoren p LEFT JOIN Vorlesungen v
Professoren p LEFT JOIN Vorlesungen v
ON p.PersNr = v.GelesenVon
Group by p.Name, p.PersNr
Group by
p Name p PersNr
Order by Anzahl
Unterabfragen / Verschachtelte Abfrage
Unterabfragen / Verschachtelte Abfrage
• Zwei verschiedene Arten von Unteranfragen: korrelierte und Z i
hi d
At
U t
f
k
li t
d
unkorrelierte
• unkorreliert: Unteranfrage bezieht sich nur auf unkorreliert: Unteranfrage bezieht sich nur auf "eigene"
eigene Attribute
Attribute
 Unteranfrage wird einmal ausgewertet für jedes Tupel der äußeren Anfrage wird geprüft, ob die MatrNr im Ergebnis der Unteranfrage vorkommt
• korreliert: Unteranfrage referenziert auch Attribute der äußeren Anfrage
 Für jedes Tupel
Fü j d T l der äußeren Anfrage hat innere Anfrage verschiedene Werte d ä ß
A f
h i
A f
hi d
W
 das exists‐Prädikat wahr, wenn exists ist die Unteranfrage mind. ein Tupel
enthält
Beispiel: Unteranfrage
Beispiel: Unteranfrage Unkorreliert:
Korreliert:
select s.*
s*
from Studenten s
where s.GebDatum <
(select max (p.GebDatum)
from Professoren p);
select s.*
s*
from Studenten s
where exists
(select p.*
from Professoren p
where p.GebDatum > s.GebDatum);
Herunterladen