SQL Cheatsheet

lock
Bevorstehend

Übersicht der wichtigsten SQL-Befehle: SELECT, INSERT, UPDATE, DELETE, CREATE TABLE und JOIN.

Ziele dieses Moduls
  • Sie können die grundlegenden SQL-Befehle SELECT, INSERT, UPDATE und DELETE korrekt formulieren.
    Anwenden
  • Sie können Tabellen mit CREATE TABLE erstellen und geeignete Datentypen wählen.
    Anwenden
  • Sie können JOINs verwenden, um Daten aus mehreren Tabellen zu kombinieren.
    Anwenden

Dieses Cheatsheet gibt Ihnen eine kompakte Übersicht über die wichtigsten SQL-Befehle. Es dient als Nachschlagewerk für die tägliche Arbeit mit relationalen Datenbanken.

Note

Hinweis zur Syntax

In den folgenden Beispielen stehen Begriffe in spitzen Klammern <...> als Platzhalter. Ersetzen Sie diese durch Ihre eigenen Tabellen- und Spaltennamen. Optionale Teile sind mit eckigen Klammern [...] markiert.

CREATE TABLE – Tabelle erstellen

Mit CREATE TABLE definieren Sie eine neue Tabelle mit Spalten, Datentypen und Einschränkungen (Constraints).

CREATE TABLE <tabellenname> (
  <spalte1> <datentyp> [PRIMARY KEY] [NOT NULL],
  <spalte2> <datentyp> [DEFAULT <wert>],
  <spalte3> <datentyp> [UNIQUE],
  [FOREIGN KEY (<spalte>) REFERENCES <andere_tabelle>(<spalte>)]
);

Beispiel

CREATE TABLE schueler (
  id        INTEGER PRIMARY KEY,
  vorname   VARCHAR(50) NOT NULL,
  nachname  VARCHAR(50) NOT NULL,
  klasse    VARCHAR(10) DEFAULT '1a',
  email     VARCHAR(100) UNIQUE
);

Wichtige Datentypen

DatentypBeschreibungBeispiel
INTEGERGanzzahl42
VARCHAR(n)Text mit max. n Zeichen'Hallo'
TEXTLanger Text (unbegrenzt)'Langer Text...'
DECIMAL(p,s)Dezimalzahl (p Stellen, s Nachkomma)19.99
DATEDatum'2025-03-06'
BOOLEANWahrheitswertTRUE / FALSE

Wichtige Constraints

ConstraintBedeutung
PRIMARY KEYEindeutiger Schlüssel der Tabelle
NOT NULLWert darf nicht leer sein
UNIQUEWert muss einzigartig sein
DEFAULT <wert>Standardwert falls nichts angegeben
FOREIGN KEYVerweis auf eine andere Tabelle

SELECT – Daten abfragen

Mit SELECT lesen Sie Daten aus einer oder mehreren Tabellen.

SELECT <spalte1>, <spalte2>, ...
FROM <tabelle>
[WHERE <bedingung>]
[ORDER BY <spalte> [ASC | DESC]]
[LIMIT <anzahl>];

Beispiele

-- Alle Spalten aller Schueler
SELECT *
FROM schueler;

-- Nur bestimmte Spalten
SELECT vorname, nachname
FROM schueler;

-- Mit Bedingung
SELECT vorname, nachname
FROM schueler
WHERE klasse = '2b';

-- Sortiert (aufsteigend)
SELECT vorname, nachname
FROM schueler
ORDER BY nachname ASC;

-- Sortiert (absteigend), nur 5 Ergebnisse
SELECT vorname, nachname
FROM schueler
ORDER BY nachname DESC
LIMIT 5;

Nützliche WHERE-Operatoren

OperatorBedeutungBeispiel
=GleichWHERE klasse = '2b'
!= oder <>UngleichWHERE klasse != '2b'
<, >, <=, >=VergleichWHERE alter >= 16
BETWEENZwischen zwei WertenWHERE alter BETWEEN 14 AND 18
LIKEMuster-Suche (% = beliebig viele Zeichen)WHERE name LIKE 'M%'
INWert in einer ListeWHERE klasse IN ('1a', '1b')
IS NULLWert ist leerWHERE email IS NULL
AND / ORBedingungen verknüpfenWHERE klasse = '2b' AND alter > 15

SELECT mit JOIN – Tabellen verknüpfen

Mit JOIN kombinieren Sie Daten aus mehreren Tabellen über gemeinsame Schlüssel.

SELECT <tabelle1>.<spalte>, <tabelle2>.<spalte>
FROM <tabelle1>
JOIN <tabelle2> ON <tabelle1>.<fk_spalte> = <tabelle2>.<pk_spalte>
[WHERE <bedingung>]
[ORDER BY <spalte> [ASC | DESC]];

Beispiel

-- Schueler mit ihrer Klassen-Info
SELECT schueler.vorname, schueler.nachname, klassen.raum
FROM schueler
JOIN klassen ON schueler.klasse_id = klassen.id
WHERE klassen.stufe = 2
ORDER BY schueler.nachname ASC;

JOIN-Typen

TypBeschreibung
JOIN (= INNER JOIN)Nur Zeilen, die in beiden Tabellen vorkommen
LEFT JOINAlle Zeilen der linken Tabelle + passende der rechten
RIGHT JOINAlle Zeilen der rechten Tabelle + passende der linken
FULL JOINAlle Zeilen aus beiden Tabellen

INSERT INTO – Daten einfügen

Mit INSERT INTO fügen Sie neue Zeilen in eine Tabelle ein.

INSERT INTO <tabelle> (<spalte1>, <spalte2>, ...)
VALUES (<wert1>, <wert2>, ...);

Beispiele

-- Einen Schueler einfuegen
INSERT INTO schueler (vorname, nachname, klasse, email)
VALUES ('Max', 'Muster', '2b', 'max@schule.ch');

-- Mehrere Schueler auf einmal
INSERT INTO schueler (vorname, nachname, klasse)
VALUES
  ('Anna', 'Beispiel', '1a'),
  ('Tom', 'Test', '1a'),
  ('Lisa', 'Demo', '2b');

UPDATE – Daten ändern

Mit UPDATE ändern Sie bestehende Daten in einer Tabelle.

UPDATE <tabelle>
SET <spalte1> = <neuer_wert1>,
    <spalte2> = <neuer_wert2>
WHERE <bedingung>;

Warning

Achtung: Ohne WHERE werden alle Zeilen der Tabelle geändert! Verwenden Sie immer eine Bedingung.

Beispiele

-- Eine Spalte aendern
UPDATE schueler
SET klasse = '3a'
WHERE id = 1;

-- Mehrere Spalten aendern
UPDATE schueler
SET klasse = '3a',
    email = 'max.neu@schule.ch'
WHERE vorname = 'Max' AND nachname = 'Muster';

DELETE – Daten löschen

Mit DELETE entfernen Sie Zeilen aus einer Tabelle.

DELETE FROM <tabelle>
WHERE <bedingung>;

Warning

Achtung: Ohne WHERE werden alle Zeilen gelöscht! Prüfen Sie die Bedingung immer vorher mit einem SELECT.

Beispiele

-- Einen Schueler loeschen
DELETE FROM schueler
WHERE id = 42;

-- Alle Schueler einer Klasse loeschen
DELETE FROM schueler
WHERE klasse = '4c';

Reflection

Tipp: Sicheres Vorgehen

Bevor Sie ein UPDATE oder DELETE ausführen, testen Sie die WHERE-Bedingung immer zuerst mit einem SELECT:

  1. Schreiben Sie zuerst: SELECT * FROM schueler WHERE klasse = '4c';
  2. Prüfen Sie, ob die richtigen Zeilen angezeigt werden.
  3. Ersetzen Sie dann SELECT * durch DELETE bzw. schreiben Sie das UPDATE.


Kurzübersicht

BefehlSyntaxZweck
CREATE TABLECREATE TABLE t (spalte typ, ...)Tabelle erstellen
SELECTSELECT spalten FROM t WHERE ...Daten lesen
JOIN... JOIN t2 ON t1.fk = t2.pkTabellen verknüpfen
INSERTINSERT INTO t (spalten) VALUES (...)Daten einfügen
UPDATEUPDATE t SET spalte = wert WHERE ...Daten ändern
DELETEDELETE FROM t WHERE ...Daten löschen