MB Dev .tech
Registrieren Login

SQL · SELECT & WHERE

← Zurück zu SQL Basics

SELECT ist der wichtigste SQL-Befehl überhaupt. Damit liest du Daten aus einer Tabelle. WHERE ist der Filter dazu: Damit sagst du, welche Zeilen du haben willst.

Merke
SELECT holt Daten · WHERE begrenzt sie

Ohne WHERE bekommst du oft „alles“ – das ist selten das, was du wirklich willst.

1) Das Grundgerüst von SELECT

Ein SELECT hat fast immer diese Struktur:

Grundform

SELECT spalten
FROM tabelle
WHERE bedingung
ORDER BY spalte
LIMIT anzahl;

Nicht jeder Teil ist immer nötig, aber die Reihenfolge ist wichtig.

2) Beispiel-Tabelle: customers

Wir bleiben bei unserem einfachen Shop-Beispiel. Stell dir vor, diese Tabelle existiert:

customers (Beispiel)

id | name        | email
---+-------------+-----------------------
1  | Alex Weber  | alex@example.com
2  | Lina Koch   | lina@example.com
3  | Tom Neumann | tom@example.com

3) SELECT * vs gezielte Spalten

SELECT * bedeutet: „Gib mir alle Spalten“. Das ist praktisch zum Lernen, aber in echten Projekten solltest du meistens gezielt auswählen.

Alle Spalten

SELECT *
FROM customers;
Gezielte Spalten

SELECT id, name
FROM customers;
Tipp
Hole nur, was du wirklich brauchst

Das macht Abfragen schneller und deine Anwendung übersichtlicher. Gerade bei großen Tabellen ist das ein echter Vorteil.

4) WHERE – der Filter (das ist der Gamechanger)

Mit WHERE sagst du: „Nur die Zeilen, auf die diese Regel passt.“ Beispiel: Einen Kunden über seine ID finden.

Nach ID filtern

SELECT id, name, email
FROM customers
WHERE id = 2;

Oder: Nach einem bestimmten Namen filtern (Text-Vergleich).

Nach Text filtern

SELECT id, name
FROM customers
WHERE name = 'Lina Koch';
Achtung
Text braucht Anführungszeichen

In SQL werden Texte meistens mit einfachen Anführungszeichen geschrieben: 'Text'. Zahlen dagegen ohne Anführungszeichen.

5) Mehrere Bedingungen: AND / OR

Oft willst du mehr als eine Bedingung. Dafür nutzt du AND und OR.

  • AND = beide Bedingungen müssen stimmen
  • OR = eine Bedingung reicht
AND Beispiel

SELECT id, name
FROM customers
WHERE id >= 2 AND name <> 'Tom Neumann';

Hier siehst du auch direkt eine Alternative zu !=: In SQL ist <> ebenfalls „ungleich“.

Merke
!= und <> bedeuten beide „ungleich“

Viele Datenbanken unterstützen beides. In der Praxis siehst du oft <>.

OR + Klammern (wichtig)

SELECT id, name
FROM customers
WHERE (name = 'Alex Weber' OR name = 'Lina Koch')
  AND id >= 1;
Achtung
Klammern vermeiden Missverständnisse

Ohne Klammern kann eine Abfrage etwas anderes bedeuten, als du denkst. Gerade bei OR ist das ein häufiger Fehler.

6) Häufige WHERE-Werkzeuge (sehr praktisch)

Es gibt ein paar Operatoren, die du in der Praxis ständig siehst:

LIKE (Textmuster)

SELECT id, name
FROM customers
WHERE name LIKE 'Lina%';   -- beginnt mit "Lina"
IN (Liste)

SELECT id, name
FROM customers
WHERE id IN (1, 3);
BETWEEN (Bereich)

SELECT id, name
FROM customers
WHERE id BETWEEN 1 AND 2;
Achtung
NULL vergleicht man nicht mit =

WHERE email = NULL funktioniert nicht so, wie viele erwarten. Richtig ist: WHERE email IS NULL (oder IS NOT NULL).

NULL richtig prüfen

SELECT id, name
FROM customers
WHERE email IS NOT NULL;

7) ORDER BY & LIMIT (damit es „praktisch“ wird)

Häufig willst du Ergebnisse sortieren und begrenzen – besonders für Listen/Übersichten.

Sortieren + Limit

SELECT id, name
FROM customers
ORDER BY name ASC
LIMIT 10;
  • ASC = aufsteigend (A → Z)
  • DESC = absteigend (Z → A)
Nächster Schritt
GROUP BY & Aggregates

Jetzt bauen wir auf SELECT auf und machen Auswertungen: „Wie viele Bestellungen pro Kunde?“ – genau das sind Aggregates.