EMZETT.
Login

Kurz: - SQLite-Dokumentation (sqlite.org) und PostgreSQL-Handbuch (postgresql.org/docs) - Übungsplattformen wie SQLBolt, SQLZoo oder Advent of SQL - Eigene Projekte mit echten Daten (CSV importieren, auswerten)

Teil des Kurses SQL

Kapitel 15 von 15 im Kurs SQL (Abschnitt „Nachschlagen“). Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

Aufbau einer Abfrage

SELECT [DISTINCT] spalten / ausdruecke
FROM tabelle [alias]
[JOIN andere ON bedingung]
[WHERE zeilenfilter]
[GROUP BY spalten]
[HAVING gruppenfilter]
[ORDER BY spalte [ASC|DESC]]
[LIMIT n [OFFSET m]];

Befehle

BereichBefehle
AbfragenSELECT, WITH
DatenINSERT, UPDATE, DELETE
StrukturCREATE, ALTER, DROP (Tabelle, Index, View, Trigger)
TransaktionenBEGIN, COMMIT, ROLLBACK, SAVEPOINT
RechteGRANT, REVOKE

Operatoren

TypOperatoren
Vergleich= <> < <= > >=
LogikAND OR NOT
Bereich/ListeBETWEEN a AND b, IN (...), EXISTS (...)
TextLIKE '%x_', `
NULLIS NULL, IS NOT NULL, COALESCE, NULLIF
Rechnen+ - * / %

Aggregat- und Fensterfunktionen

AggregatFenster
count sum avg min max group_concatROW_NUMBER RANK DENSE_RANK LAG LEAD NTILE
mit GROUP BY / HAVINGmit OVER (PARTITION BY ... ORDER BY ...)

Joins

JoinBehält
INNER JOINnur Treffer
LEFT JOINalle links
RIGHT JOINalle rechts
FULL JOINalle beider Seiten
CROSS JOINalle Kombinationen

Dialekt-Unterschiede

AufgabeSQLitePostgreSQLMySQLSQL Server
BegrenzenLIMIT nLIMIT nLIMIT nTOP n / FETCH
Verkettena || ba || bCONCAT(a, b)a + b / CONCAT
Auto-IDINTEGER PRIMARY KEYGENERATED ... AS IDENTITYAUTO_INCREMENTIDENTITY
Aktuelle Zeitdatetime('now')NOW()NOW()GETDATE()
UpsertON CONFLICTON CONFLICTON DUPLICATE KEYMERGE
Bool0/1BOOLEANBOOLEANBIT

Häufige Fehler

FehlerUrsache
UPDATE/DELETE ohne WHEREalle Zeilen betroffen
= NULLimmer unbekannt; nutze IS NULL
NOT IN mit NULLliefert nie Treffer; nutze NOT EXISTS
Spalte nicht in GROUP BYAggregation ohne Gruppierung
count(*) nach LEFT JOINzählt auch leere Seite; nutze count(rechte_spalte)
WHERE auf Aggregatstattdessen HAVING
Ganzzahldivision7/2 = 3, nutze 7/2.0
String-Verkettung mit NutzereingabenSQL-Injection; parametrisiere

Weiterlernen

  • SQLite-Dokumentation (sqlite.org) und PostgreSQL-Handbuch (postgresql.org/docs)
  • Übungsplattformen wie SQLBolt, SQLZoo oder Advent of SQL
  • Eigene Projekte mit echten Daten (CSV importieren, auswerten)

Merke

  • Die Reihenfolge der Ausführung ist FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMIT
  • Mit NULL vorsichtig sein: IS NULL, COALESCE, EXISTS
  • Joins verbinden Tabellen, CTEs strukturieren Abfragen
  • Indizes, Transaktionen und Normalisierung machen Datenbanken schnell und sicher

Quiz zur Selbstkontrolle

Weiter im Kurs

Zurück: Datenbankentwurf und Normalisierung

Alle Kapitel: SQL im Überblick