Direkt zum Inhalt
Urkunden
JSON-FunktionenTabellen & Schema ManagementMathe-FunktionenDatenbankenString-FunktionenAuslöserIndizesDatum FunktionenBasic Syntax

PostgreSQL WHERE

Die `WHERE`-Klausel in PostgreSQL wird verwendet, um Datensätze zu filtern, die bestimmte Bedingungen erfüllen. Sie ermöglicht es, nur die Zeilen abzurufen, die die angegebenen Kriterien erfüllen.

Verwendung

Die `WHERE`-Klausel wird normalerweise in Verbindung mit Datenabrufbefehlen wie `SELECT`, `UPDATE` und `DELETE` verwendet, um anzugeben, welche Datensätze betroffen sein sollen. Sie steht nach dem Tabellennamen und vor anderen Klauseln wie `ORDER BY` oder `GROUP BY`.

sql
SELECT column1, column2, ...
FROM table_name
WHERE condition;

In dieser Syntax definiert `WHERE condition` die Filterkriterien für die Abfrage und schränkt die Ergebnismenge auf die Zeilen ein, die die Bedingung erfüllen.

Beispiele

1. Grundlegende Filterung

sql
SELECT *
FROM employees
WHERE department = 'Sales';

In diesem Beispiel werden alle Spalten aus der Tabelle "Mitarbeiter" für Datensätze abgerufen, deren "Abteilung" "Vertrieb" ist.

2. Filtern mit mehreren Bedingungen

sql
SELECT first_name, last_name
FROM employees
WHERE department = 'Engineering' AND salary > 50000;

In dieser Abfrage werden der "Vorname" und der "Nachname" von Mitarbeitern in der Abteilung "Technik" mit einem Gehalt von mehr als 50.000 abgefragt.

3. Musterabgleich verwenden

sql
SELECT product_name
FROM products
WHERE product_name LIKE 'A%';

In diesem Beispiel wird der Operator `LIKE` verwendet, um alle Produktnamen zu finden, die mit dem Buchstaben 'A' beginnen.

4. Verwendung von WHERE in einer UPDATE-Anweisung

sql
UPDATE employees
SET salary = salary * 1.10
WHERE department = 'Marketing';

Diese Abfrage erhöht das Gehalt aller Mitarbeiter in der Abteilung "Marketing" um 10%.

5. WHERE in einer DELETE-Anweisung verwenden

sql
DELETE FROM orders
WHERE order_date < '2023-01-01';

In diesem Beispiel werden alle Bestellungen, die vor dem 1. Januar 2023 aufgegeben wurden, gelöscht.

6. Umgang mit NULL-Werten

sql
SELECT * 
FROM customers 
WHERE last_name IS NULL;

Diese Abfrage ruft alle Kunden ab, deren "Nachname" "NULL" ist.

7. Beispiel für logische Operatoren

sql
SELECT employee_id
FROM employees
WHERE department = 'HR' OR department = 'Finance' AND NOT salary < 40000;

Diese Abfrage holt Mitarbeiter-IDs aus den Abteilungen "Personal" oder "Finanzen" mit einem Gehalt von mindestens 40.000.

Tipps und bewährte Praktiken

  • Verwende Indizes. Stelle sicher, dass indizierte Spalten in `WHERE`-Bedingungen verwendet werden, um die Abfrageleistung zu verbessern. Sei vorsichtig, wenn du Funktionen oder Berechnungen auf indizierte Spalten anwendest, da sie die Vorteile des Index zunichte machen können.
  • Nutze logische Operatoren. Kombiniere mehrere Bedingungen mit `AND`, `OR` und `NOT`, um komplexe Filter zu erstellen.
  • Optimiere die Reihenfolge der Bedingungen. Stelle die restriktivsten Bedingungen zuerst auf, um den Datensatz schnell zu reduzieren.
  • Setze den Mustervergleich klug ein. Verwende `%` und `_` mit `LIKE` mit Vorsicht, da sie die Leistung beeinträchtigen können.
  • Datentypen validieren. Achte darauf, dass die Datentypen in deiner `WHERE`-Klausel-Bedingung mit den Spaltentypen übereinstimmen, um Fehler zu vermeiden und die Effizienz zu verbessern.
  • Berücksichtige die Groß- und Kleinschreibung. Denke daran, dass PostgreSQL bei Textvergleichen zwischen Groß- und Kleinschreibung unterscheidet, was sich auf die Ergebnisse von `WHERE`-Bedingungen mit Strings auswirken kann.