Zurück zur Artikelliste Artikel
3 Leseminuten

SQL-Filterung 101

Manchmal geben SQL-Abfragen viele Daten zurück, die Sie nicht benötigen. In diesem Artikel sehen wir uns ein einfaches Beispiel für das Filtern von SQL-Abfragen an, um die Komplexität Ihrer Daten zu reduzieren.

Der Schlüssel zum Erlernen des Filterns von Daten in SQL ist das Verständnis der Grundlagen der Booleschen Algebra. Das ist nur ein schicker Begriff, den Mathematiker verwenden, um Ausdrücke zu beschreiben, die logische Werte (wahr/falsch) und die dazugehörigen Operatoren (und, oder, nicht, usw.) beinhalten. Lassen Sie sich von diesem Jargon nicht entmutigen; Filtern ist einfach gesunder Menschenverstand, der durch Mathematik formalisiert wird.

Schauen wir uns eine einfache Kundentabelle an:

Diese Tabelle enthält alle Kunden unserer fiktiven Zoohandlung. Für jeden Kunden, der unser Geschäft besucht hat, werden der Name, der Nachname, der Wohnort, das Land, das Geburtsdatum und der Haustiertyp aufgeführt.

Natürlich sind wir nicht immer daran interessiert, uns jeden einzelnen Kunden in der Tabelle anzusehen. Wir könnten daran interessiert sein, die Tabelle zu filtern, um Daten für alle Kunden anzuzeigen, die zum Beispiel in Berlin wohnen. Wir würden die Daten mit einem einfachen Ausdruck in der WHERE Klausel unserer Abfrage filtern:

SELECT * FROM customers WHERE city = 'Berlin';

Hier wenden wir die Filterbedingung mit dem Gleichheitsoperator (=) an, den Sie laut als "IS" lesen können. Mit anderen Worten: Die obige Abfrage weist die Datenbank an, alle Daten für Kunden auszuwählen, deren Stadt Berlin ist. Ziemlich einfach, oder?

Datensätze aus den Ergebnismengen ausschließen

Wie würden Sie vorgehen, um die Umkehrung der vorherigen Frage zu stellen? Wie würden Sie alle Kunden finden, außer denen, die in Berlin wohnen? Wir wenden einfach den Ausschlussoperator (!) auf den Gleichheitsoperator an, um den zusammengesetzten Ungleichheitsoperator (!=) zu erhalten. Wir würden also schreiben:

SELECT * FROM customers WHERE city != 'Berlin';

Filtern von Daten

Schauen wir uns nun das Filtern von Daten in SQL an. Angenommen, wir möchten alle Kunden finden, die nach dem 01.01.1984 geboren sind. Der entsprechende logische Ausdruck sollte nach einem Datum fragen , das größer als diese Konstante ist. Wir würden also die folgende Abfrage schreiben:

SELECT * FROM customers WHERE date_of_birth > '1984-01-01';

Natürlich haben wir den Größer-als-Operator (>) verwendet. Wenn wir den umgekehrten Fall abfragen möchten, d. h. Daten für alle Kunden, die am oder vor dem 01.01.1984 geboren sind, würden wir das Vorzeichen wechseln:

SELECT * FROM customers WHERE date_of_birth <= '1984-01-01';

Zusammengesetzte Bedingungen

Was, wenn wir einige Bedingungen kombinieren und alle Kunden finden möchten, die z. B. nach dem 01.01.1984 geboren wurden, Hunde besitzen und in Berlin wohnen? Wir würden unsere Filterbedingungen nacheinander (in keiner bestimmten Reihenfolge) mit dem Operator and verknüpfen. Hier ist die Abfrage:

SELECT * FROM customers WHERE date_of_birth > '1984-01-01' and pet ='Dog' and city = 'Berlin';

Wenn wir alle Kunden auswählen möchten, die entweder in Berlin wohnen oder einen Hund haben, tauschen wir einfach das AND gegen ein OR aus:

SELECT * FROM customers WHERE pet ='Dog' or city = 'Berlin';

Möchten Sie mehr erfahren?

In diesem einfachen Lernprogramm haben Sie gelernt, wie man Daten in SQL mit booleschen Operatoren und Bedingungen filtert. Natürlich war dies nur eine Einführung - die Anwendung von Filtern ist eine Fähigkeit, die Sie beherrschen müssen, um SQL zu beherrschen. Wenn Sie mehr praktische Erfahrung mit Filtern von Tabellen in SQL zu sammeln, sollten Sie sich diesen Abschnitt in unserem Kurs SQL für Anfänger. Und denken Sie daran: Übung ist der Schlüssel zur Beherrschung von SQL!