4.1 Daten abfragen und verändern
SELECT liest Daten; INSERT, UPDATE und DELETE verändern sie. Entscheidend sind präzise Filter, die logische Abfragereihenfolge und ein sicherer Umgang mit NULL sowie massenwirksamen Änderungen.
Lesen, filtern, sortieren und begrenzen
Die logische Verarbeitung erfolgt vereinfacht als FROM/JOIN, WHERE, GROUP BY, HAVING, SELECT, DISTINCT, ORDER BY und LIMIT. WHERE filtert einzelne Zeilen vor der Gruppierung; HAVING filtert Gruppen danach. UNION verbindet eigenständige SELECT-Ergebnisse und ist keine Klausel innerhalb dieser Reihenfolge.
SELECT
SELECT DISTINCT ort, COUNT(*) AS anzahl
FROM kunde
WHERE aktiv = TRUE AND ort IS NOT NULL
GROUP BY ort
HAVING COUNT(*) >= 2
ORDER BY anzahl DESC, ort ASC
LIMIT 10;Vergleiche, Muster und NULL
| Ausdruck | Zweck | Hinweis |
|---|---|---|
| =, <>, <, <=, >, >= | Werte vergleichen | Datentypen beachten |
| BETWEEN a AND b | Inklusiver Bereich | Beide Grenzen sind enthalten |
| IN (…) | Mit Wertemenge vergleichen | Lesbarer als viele OR-Bedingungen |
| LIKE 'Ma%' | Mustervergleich | % steht für beliebig viele Zeichen, _ für eines |
| IS NULL / IS NOT NULL | Fehlenden Wert prüfen | = NULL liefert nicht TRUE |
Daten verändern – zuerst Wirkung prüfen
UPDATE oder DELETE ohne WHERE wirkt auf alle Zeilen. In produktiven Systemen die Auswahl zunächst mit SELECT prüfen, eine Transaktion verwenden, betroffene Zeilen zählen und die Sicherungsstrategie kennen. Aggregatfunktionen wie COUNT, SUM, AVG, MIN und MAX verdichten Zeilen; Zeichenketten- und Datumsfunktionen unterscheiden sich teils zwischen DBMS.
INSERT, UPDATE, DELETE
INSERT INTO kunde (email, name) VALUES ('lea@example.org', 'Lea Sommer');
SELECT * FROM kunde WHERE kunden_id = 42;
UPDATE kunde SET aktiv = FALSE WHERE kunden_id = 42;
DELETE FROM kunde WHERE kunden_id = 42;Quellen zur fachlichen Prüfung
PDF-Download nach Anmeldung
Zum Schutz der Unterrichtsunterlagen steht der PDF-Download ausschließlich angemeldeten Nutzern zur Verfügung.
