Datenbankabfrage, Datenpflege
Grundlagen
SELECT-Befehl
Der SELECT-Befehl wird verwendet, um Daten aus einer oder mehreren Tabellen zu lesen.
Syntax
SELECT spaltenname1, spaltenname2, ...
FROM tabellenname;
- SELECT gibt an, welche Spalten angezeigt werden sollen.
- FROM spezifiziert, aus welcher Tabelle die Daten abgefragt werden.
Beispiel
SELECT name, alter FROM personen;
WHERE-Klausel
Die WHERE-Klausel wird verwendet, um die Datensätze zu filtern und nur die Datensätze zurückzugeben, die eine bestimmte Bedingung erfüllen.
Syntax
SELECT spaltenname1, spaltenname2, ...
FROM tabellenname
WHERE bedingung;
Beispiel
SELECT name, alter FROM personen WHERE alter > 18;
JOIN
JOIN wird verwendet, um Zeilen aus zwei oder mehr Tabellen basierend auf einer verwandten Spalte zwischen ihnen zu kombinieren.
Arten von JOINs
- INNER JOIN: Gibt Datensätze zurück, die in beiden Tabellen eine Übereinstimmung haben.
- LEFT JOIN (oder LEFT OUTER JOIN): Gibt alle Datensätze aus der linken Tabelle und die übereinstimmenden Datensätze aus der rechten Tabelle zurück.
- RIGHT JOIN (oder RIGHT OUTER JOIN): Gibt alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle zurück.
- FULL JOIN (oder FULL OUTER JOIN): Gibt alle Datensätze zurück, wenn es eine Übereinstimmung in einer der Tabellen gibt.
Beispiel
SELECT personen.name, bestellungen.produkt
FROM personen
INNER JOIN bestellungen ON personen.id = bestellungen.person_id;
GROUP BY
GROUP BY wird verwendet, um ähnliche Datensätze in Gruppen zusammenzufassen.
Syntax
SELECT spalte1, AGGREGATFUNKTION(spalte2)
FROM tabelle
WHERE bedingung
GROUP BY spalte1;
Beispiel
SELECT alter, COUNT(name)
FROM personen
GROUP BY alter;
HAVING
HAVING wird verwendet, um Bedingungen an die Gruppierungsergebnisse anzuhängen, ähnlich wie WHERE, aber für Gruppen.
Syntax
SELECT spalte1, AGGREGATFUNKTION(spalte2)
FROM tabelle
WHERE bedingung
GROUP BY spalte1
HAVING bedingung_fuer_gruppe;
Beispiel
SELECT alter, COUNT(name)
FROM personen
GROUP BY alter
HAVING COUNT(name) > 2;
ORDER BY
ORDER BY wird verwendet, um die Ergebnisse einer Abfrage in aufsteigender oder absteigender Reihenfolge zu sortieren.
Syntax
SELECT spaltenname1, spaltenname2, ...
FROM tabellenname
ORDER BY spaltenname1 [ASC|DESC];
Beispiel
SELECT name, alter FROM personen
ORDER BY alter DESC;