Datenmanagement

Werbung
Datenmanagement
SQL: SELECT-Abfragen I
Datenmanagement WS 08/09
Łukasz Lis
Beispieldatenbank – ERM
Datenmanagement WS 08/09
1
Łukasz Lis
Beispieldatenbank – Schema
Datenmanagement WS 08/09
2
Łukasz Lis
SELECT
SELECT
select_expr, ...
Im SELECT-Teil werden Ergebnisspalten definiert.
Konstanten
Funktionen
Ausdrücke
Aliase
Datenmanagement WS 08/09
3
Łukasz Lis
SELECT FROM
SELECT
[ALL | DISTINCT]
select_expr, ...
FROM table_references
Der FROM-Teil gibt die zu verwendeten Tabellen an.
* (Stern)
Gib alle Nutzer aus.
Datenmanagement WS 08/09
4
Łukasz Lis
SELECT FROM WHERE
SELECT
[ALL | DISTINCT]
select_expr, ...
FROM table_references
WHERE where_condition
Der WHERE-Teil spezifiziert Bedingungen, die alle
Ergebnisdatensätze erfüllen müssen.
Datenmanagement WS 08/09
5
Łukasz Lis
WHERE
Einfacher Vergleich (=, <, >, <>, <=, >=)
Verknüpfung von Bedingungen mit AND, OR oder NOT
BETWEEN
LIKE (_ und %)
Der IN-Operator in Verbindung mit einer Liste
Die Operatoren IS NULL und IS NOT NULL
Datenmanagement WS 08/09
6
Łukasz Lis
Tabellenverknüpfungen (JOIN)
CROSS JOIN (explizit, Komma)
INNER JOIN (ON, Komma+WHERE, USING)
NATURAL JOIN
LEFT (OUTER) JOIN
RIGHT JOIN und FULL JOIN
Gib alle Rollen mit den zugewiesenen Nutzern aus.
Gib Rollen ohne zugewiesene Nutzer aus.
Gib alle Informationen im System aus.
Datenmanagement WS 08/09
7
Łukasz Lis
Datenaggregation
COUNT([DISTINCT]
expr)
COUNT(*)
MIN(expr)
MAX(expr)
SUM(expr)
AVG(expr)
Ermittelt die Anzahl der gültigen Werte
innerhalb einer Gruppe. Wird die Option
DISTINCT verwendet, werden gleiche Werte nur
einmal gezählt.
Ermittelt die Anzahl der Datensätze im
Ergebnis.
Ermittelt den kleinsten Wert einer Gruppe von
Werten.
Ermittelt den größten Wert einer Gruppe von
Werten.
Ermittelt die Summe der Werte einer Gruppe
von Werten.
Ermittelt das arithmetische Mittel einer
Gruppe von Werten.
NULL-Werte werden grundsätzlich ignoriert
Ausnahme: COUNT(*)
Datenmanagement WS 08/09
8
Łukasz Lis
Datenaggregation – Beispiele
Wann war die letzte Änderung im System?
Wann war die letzte Änderung des Dokuments 1?
Wie oft wurde das Dokument 1 bereits geändert?
Wie oft hat der Nutzer 1 Änderungen vorgenommen?
Datenmanagement WS 08/09
9
Łukasz Lis
Gruppenbildung (GROUP BY)
SELECT
[ALL | DISTINCT]
select_expr, ...
FROM table_references
WHERE where_condition
GROUP BY {col_name | expr}, ...
Als select_expr nur die Spalten, über die gruppiert wird,
oder Aggregationsausdrücke.
Datenmanagement WS 08/09
10
Łukasz Lis
Gruppenbildung – Beispiele
Wie viele Zeichen wurden pro Sitzung durchschnittlich
geändert?
Gib Liste aller Dokumente mit deren
Änderungshäufigkeiten aus.
Datenmanagement WS 08/09
11
Łukasz Lis
Gruppenbedingungen (HAVING)
SELECT
[ALL | DISTINCT]
select_expr, ...
FROM table_references
WHERE where_condition
GROUP BY {col_name | expr}, ...
HAVING having_condition
HAVING – Gruppenebene
WHERE – Datensatzebene
Datenmanagement WS 08/09
12
Łukasz Lis
Sortieren (ORDER BY)
SELECT
[ALL | DISTINCT]
select_expr, ...
[FROM table_references
[WHERE where_condition]
[GROUP BY {col_name | expr}, ...]
[HAVING having_condition]
[ORDER BY {col_name | expr} [ASC | DESC],
...]
Datenmanagement WS 08/09
13
Łukasz Lis
Konzeptionelle Berechnungsreihenfolge
1. FROM: Definiert Ausgangstabellen
2. WHERE: Selektiert nur die Datensätze, welche die
Bedingung erfüllen
3. GROUP BY: Gruppiert Datensätze auf Basis gleicher
Werte in bestimmten Spalten
4. HAVING: Selektiert nur die Gruppen, die der Bedingung
genügen
5. SELECT: Selektiert Spalten
6. ORDER BY: Sortiert Zeilen nach bestimmten Spalten
Datenmanagement WS 08/09
14
Łukasz Lis
Herunterladen