SQL-Grundlagen — die ersten Befehle, die wirklich sitzen

SELECT, WHERE, JOIN — klingt nach Buchhalter-Sprech, ist aber das Werkzeug, mit dem fast jede Anwendung an Daten kommt. Hier kommt der gute Einstieg.

Was ist SQL eigentlich?

SQL heißt Structured Query Language — die Standard-Sprache, mit der man relationale Datenbanken befragt und verändert. PostgreSQL, MySQL, MariaDB, MS SQL Server, Oracle — die sprechen alle SQL, mit kleinen Dialekt-Unterschieden.

Stell dir eine Datenbank wie einen Aktenschrank vor: Tabellen sind die Schubladen, Spalten sind die Spalten in einem Formular, Zeilen sind einzelne ausgefüllte Formulare. SQL ist die Sprache, mit der du dem Aktenschrank sagst: "Hol mir alle Akten, in denen 'Wuppertal' steht" oder "Trag bei Akte 42 das Datum auf heute um".

Die vier Grund-Operationen — CRUD

💡

CRUD merken

  • Create — Neue Zeile anlegen → INSERT
  • Read — Zeilen lesen → SELECT
  • Update — Zeile ändern → UPDATE
  • Delete — Zeile löschen → DELETE

Beispiel-Tabelle

Damit die Beispiele konkret werden, arbeiten wir mit dieser Tabelle kunden:

idnameortumsatz
1Müller GmbHWuppertal12500
2Schmidt AGKöln8400
3Becker KGWuppertal21000

SELECT — Daten lesen

Der wichtigste Befehl. Pattern: SELECT spalten FROM tabelle WHERE bedingung.

-- Alle Kunden
SELECT * FROM kunden;

-- Nur Name und Ort der Kunden aus Wuppertal
SELECT name, ort FROM kunden WHERE ort = 'Wuppertal';

-- Kunden mit Umsatz über 10.000 Euro
SELECT name, umsatz FROM kunden WHERE umsatz > 10000;

-- Sortiert nach Umsatz absteigend, nur die Top 2
SELECT name, umsatz FROM kunden ORDER BY umsatz DESC LIMIT 2;
ℹ️

Wichtige WHERE-Operatoren

  • = gleich, <> oder != ungleich
  • <, >, <=, >= Größenvergleiche
  • BETWEEN x AND y — Bereich (inklusive beider Grenzen)
  • IN (a, b, c) — gehört zu Liste
  • LIKE 'Wupper%' — beginnt mit "Wupper" (% = beliebige Zeichen)
  • IS NULL / IS NOT NULL — leer / nicht leer

INSERT, UPDATE, DELETE — Daten ändern

-- Neuen Kunden anlegen
INSERT INTO kunden (name, ort, umsatz)
VALUES ('Weber GbR', 'Düsseldorf', 5000);

-- Umsatz von Kunde 2 ändern
UPDATE kunden SET umsatz = 9500 WHERE id = 2;

-- Kunde löschen
DELETE FROM kunden WHERE id = 4;
⚠️

Niemals UPDATE oder DELETE ohne WHERE!

UPDATE kunden SET umsatz = 0; setzt den Umsatz von allen Kunden auf 0. Genauso löscht DELETE FROM kunden; die ganze Tabelle leer. Klassische Karriere-Killer-Befehle. Immer erst SELECT mit der gleichen WHERE-Bedingung testen, bevor du UPDATE oder DELETE laufen lässt.

JOIN — Daten aus mehreren Tabellen

Wenn du eine zweite Tabelle bestellungen hast, willst du oft "Welcher Kunde hat was bestellt?" Dafür gibt es JOINs. Die wichtigsten zwei:

  • INNER JOIN — gibt nur Zeilen, die in beiden Tabellen passen.
  • LEFT JOIN — gibt alle Zeilen der linken Tabelle, auch wenn rechts nichts passt (NULL ergänzt).
-- Kunden + ihre Bestellungen (nur die mit Bestellungen)
SELECT k.name, b.produkt, b.menge
FROM kunden k
INNER JOIN bestellungen b ON b.kunden_id = k.id;

-- Alle Kunden — auch ohne Bestellung
SELECT k.name, b.produkt
FROM kunden k
LEFT JOIN bestellungen b ON b.kunden_id = k.id;
💡

JOINs visuell merken

  • INNER = Schnittmenge — was in beiden Tabellen ist
  • LEFT = Linke Tabelle komplett + Schnittmenge
  • RIGHT = Rechte Tabelle komplett + Schnittmenge
  • FULL OUTER = beide komplett, NULL wo nichts passt

Aggregation — GROUP BY und HAVING

Wenn du nicht einzelne Zeilen, sondern Summen, Mittelwerte oder Anzahlen willst:

-- Wie viele Kunden pro Ort?
SELECT ort, COUNT(*) AS anzahl
FROM kunden
GROUP BY ort;

-- Nur Orte mit Gesamt-Umsatz über 20.000
SELECT ort, SUM(umsatz) AS gesamt
FROM kunden
GROUP BY ort
HAVING SUM(umsatz) > 20000;
ℹ️

WHERE vs. HAVING

WHERE filtert vor dem Gruppieren (einzelne Zeilen). HAVING filtert nach dem Gruppieren (Aggregat-Ergebnisse). Klassische Prüfungsfrage.

Was du dir mitnehmen solltest

  • CRUD = Create/Read/Update/Delete = INSERT/SELECT/UPDATE/DELETE.
  • SELECT-Pattern: SELECT spalten FROM tabelle WHERE bedingung ORDER BY ... LIMIT ....
  • UPDATE und DELETE nie ohne WHERE — sonst trifft es alle Zeilen.
  • JOIN verbindet Tabellen — INNER bei Schnittmenge, LEFT wenn die linke Seite vollständig sein muss.
  • WHERE filtert vor dem GROUP BY, HAVING danach.

Jetzt direkt üben

Theorie ist die halbe Miete. Beim Üben wird daraus echtes Wissen, das in der Prüfung sitzt.

SQL im Trainer üben

Mehr Themen, mehr Übungen

Über 1.100 IHK-Prüfungsfragen, 12+ Online-Kurse und 11 Simulatoren — kostenlos für FIAE und FISI.

Cookie-Einstellungen

Deine Privatsphäre ist uns wichtig

Wir verwenden Cookies, um dir die bestmögliche Erfahrung auf unserer Lernplattform zu bieten. Einige Cookies sind technisch notwendig, während andere uns helfen, die Plattform zu verbessern.

Mehr Informationen findest du in unserer Datenschutzerklärung