SQL Abfragen Flashcards
Aufbau SELECT Abfrage
SELECT liste der spalten
FROM tabelle
WHERE auswahlbedingung
GROUP BY liste von spalten (HAVING bedingung)
ORDER BY
Eliminierung von Doubletten im Ergebnis
SELECT DISTINCT spalte FROM tabelle;
Daten mit Bedingung abfragen
SELECT spalte FROM tabelle WHERE spalte=’wert’;
Logische Operatoren in der Auswahlbedingung
NOT (negation)
OR (ODER-Verknüpfung)
AND (UND-Verknüpfung)
Vergleichsoperatoren in der Auswahlbedingung
= –> Prüft auf Wertegleichheit
<>,auch: != –> Prüft auf Ungleichheit
>,< –> Größer gleich, Kleiner gleich
>=, <= –> Größer gleich, Kleiner gleich
BETWEEN –> Einschränkungen auf
bestimmte Wertebereiche
LIKE –> Einschränkungen auf
bestimmte Muster von
Attributen: _ oder %
IS NULL –> Kein Wert in Datenbank
gespeichert
IS NOT NULL –> Zusicherung, dass ein
Wert in der Datenbank
gespeichert ist
IN –> Einschränkung auf Werte
einer gegebenen Wertemenge z.B.
Continent IN (ʼAmericaʼ, ʼEuropeʼ)
Ausgewählte Operatoren für Zeichenketten und Datumswerte
CURRENT_DATE
Gibt das aktuelle Kalenderdatum
zurück, oft in
der Form YYYY-MM-DD
CURRENT_TIMESTAMP
Gibt einen aktuellen
Zeitstempel zurück, oft in
der Form YYYY-MM-DD
HH:MM:SS.
Zeichenkettenfunktionen
CONCAT(arg1, … argN)
Verbindet die als Parameter
übergebenen Werte zu
einer Zeichenkette.
SELECT CONCAT(Name,’ ’,
Code) FROM Country;
CONCAT_WS(separator, arg1,…, argN)
Verbindet die als Parameter
übergebenen Werte zu
einer Zeichenkette und fügt
zwischen 2 Werten immer
die als 1. Parameter übergebenen
Zeichen als Trennzeichen
ein.
SELECT CONCAT_WS
(’ ’, Name, Code, Area,
’;’) FROM Country;
Reihenfolgeindikator
ORDER BY (mehrere Spalten)
ORDER BY spalte1 reihenfolge1, spalte2 reihenfolge2, …, spalteN reihenfolgeN;
Beispiel:
ORDER BY Continent ASC, Percentage DESC, Name ASC;
Abfragen mit Gruppenbildung
SELECT Continent,
COUNT(*) FROM Country ROUP BY Continent;
Anzahl der Datensätze einer Gruppe
COUNT(*)
Die Werte einer Spalte innerhalb einer Gruppe summieren.
SUM(spalte)
Durchschnittswert einer Spalte innerhalb einer Gruppe
AVG(spalte)
Berechnet den Maximalwert einer Spalte innerhalb einer Gruppe;
Berechnet den Minimalwert einer Spalte innerhalb
einer Gruppe;
Einschränkungen von Gruppen
Während sich WHERE also auf die Auswahl der Datensätze vor dem Gruppieren bezieht, schränkt HAVING bereits zusammengestellte Gruppierungen ein.
SELECT Continent FROM Country
WHERE Percentage=100
GROUP BY Continent
HAVING COUNT(*)>=5;
Unterabfragen mit verschachtelten SELECTStatements
Beispiel für Unterabfrage mit mehrzeiligen Rückgabewerten
spalte
vergleichsoperator
ALL wertemenge
spalte
vergleichsoperator
ANY wertemenge
EXISTS
GROUP BY HAVING (allgemein)
SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
HAVING condition
ORDER BY column_name(s);