SELECT ·
WHERE ·
ORDER BY ·
DISTINCT ·
LIMIT ·
Operatoren
Der SELECT-Befehl ist das Herzstück von SQL. Mit diesen Konzepten können Sie Daten präzise abfragen, filtern, sortieren und begrenzen.
SELECT ist der grundlegende Befehl zum Abfragen von Daten aus einer oder mehreren Tabellen. Mit * werden alle Spalten abgefragt.
| Syntax | Beschreibung |
|---|---|
| SELECT * FROM tabelle | Alle Spalten aus der Tabelle |
| SELECT spalte1, spalte2 FROM tabelle | Nur bestimmte Spalten |
| SELECT spalte AS alias FROM tabelle | Spalte mit Alias (Umbenennung) |
| SELECT DISTINCT spalte FROM tabelle | Nur eindeutige Werte (Duplikate entfernen) |
SELECT * nur für schnelle Tests. In Produktionscode sollten Sie immer die benötigten Spalten explizit auflisten – das spart Ressourcen und macht den Code wartbarer.
WHERE filtert die Ergebnismenge basierend auf einer Bedingung. Es werden nur die Zeilen zurückgegeben, die die Bedingung erfüllen.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| = | Gleich | WHERE name = 'Laptop' |
| <> oder != | Ungleich | WHERE preis <> 0 |
| > | Größer als | WHERE preis > 100 |
| < | Kleiner als | WHERE preis < 50 |
| >= | Größer oder gleich | WHERE preis >= 100 |
| <= | Kleiner oder gleich | WHERE preis <= 50 |
| LIKE | Mustervergleich | WHERE name LIKE '%book%' |
| IN | In einer Liste | WHERE kategorie IN ('Elektronik', 'Bücher') |
| BETWEEN | Zwischen zwei Werten | WHERE preis BETWEEN 50 AND 200 |
| IS NULL | Ist NULL | WHERE rabatt IS NULL |
| IS NOT NULL | Ist nicht NULL | WHERE rabatt IS NOT NULL |
LIKE mit % (beliebig viele Zeichen) und _ (ein Zeichen). '%book%' findet alle Einträge, die "book" enthalten.
ORDER BY sortiert die Ergebnismenge nach einer oder mehreren Spalten. Standardmäßig wird aufsteigend (ASC) sortiert, absteigend mit DESC.
ORDER BY mit mehreren Spalten wird zuerst nach der ersten Spalte sortiert, dann innerhalb gleicher Werte nach der zweiten, usw. Die Reihenfolge ist wichtig!
DISTINCT entfernt doppelte Werte aus der Ergebnismenge. Es werden nur eindeutige Werte zurückgegeben.
DISTINCT wird auf alle ausgewählten Spalten angewendet. Wenn Sie mehrere Spalten auswählen, wird die gesamte Zeile auf Duplikate geprüft.
LIMIT begrenzt die Anzahl der zurückgegebenen Zeilen. Mit OFFSET kann ein Startpunkt für die Paginierung festgelegt werden.
LIMIT variiert leicht zwischen Datenbanken: MySQL: LIMIT 5, 5 (offset, count), PostgreSQL: LIMIT 5 OFFSET 5. Beide sind standardmäßig unterstützt.
Operatoren ermöglichen komplexe Bedingungen in der WHERE-Klausel durch Kombination von Vergleichen mit logischen Operatoren.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| AND | Alle Bedingungen müssen erfüllt sein | WHERE preis > 50 AND kategorie = 'Elektronik' |
| OR | Mindestens eine Bedingung muss erfüllt sein | WHERE preis < 10 OR preis > 100 |
| NOT | Kehrt die Bedingung um | WHERE NOT kategorie = 'Bücher' |
| BETWEEN | Wert liegt in einem Bereich (inklusiv) | WHERE preis BETWEEN 50 AND 200 |
| IN | Wert ist in einer Liste | WHERE kategorie IN ('Elektronik', 'Bücher') |
| LIKE | Mustervergleich | WHERE name LIKE '%book%' |
| IS NULL | Prüft auf NULL | WHERE rabatt IS NULL |
AND und OR explizit zu steuern. AND wird vor OR ausgewertet, wenn keine Klammern gesetzt werden.
SELECT
WHERE
ORDER BY
DISTINCT
LIMIT
IN
SELECT name, preis FROM produkte WHERE preis > 100 ORDER BY preis DESC LIMIT 10;