SQL: WHERE-Befehl mit einer Bedingung

Die WHERE-Bedingung ist einer der wichtigsten Bestandteile des SELECT-Befehls und grenzt die Anzahl der Zeilen ein. Um eine bestimmte Datenmenge zu filtern, benötigt man eine Bedingung, die festlegt welche Daten angezeigt werden sollen. Die allgemeine WHERE-Syntax lautet:

SELECT Columnname, Columnname […] FROM Table WHERE condition;

Um eine Bedingung zu definieren, brauche ich einen Vergleichsoperator.

Exkurs Vergleichsoperator:

Ein Vergleichsoperator vergleicht zwei Werte (Operant 1 und 2) miteinander und gibt anschließend einen Wahrheitswert „true“ oder „false“ aus. Der Inhalt einer Spalte wird also mit einem konstanten Wert verglichen. Dieser Vergleich ist für verschiedene Datentypen (Zahlen, Zeichenketten, Datumsangaben) möglich.

In SQL haben wir folgende Vergleichsoperatoren zur Verfügung:

  • Größer als >
  • Kleiner als <
  • größer oder gleich >=
  • kleiner oder gleich <=
  • gleich =
  • ungleich <>

Die allgemeine Syntax lautet:

condition = Operant1 Vergleichsoperator Operant2

Einfache Bedingung mit GLEICH-Operator:

In der Beispieldatenbank „sakila“ möchte ich mir z.B. alle Schauspieler mit den Nachnamen „Allen“  aus der Tabelle „actor“ ausgeben lassen:

SELECT first_name, last_name AS name FROM actor WHERE last_name = ‚ALLEN‘;

Beachte: Du musst ALLEN‘ in Hochkommas stellen, da die Bedingung ein String (Zeichenkette) ist. Bei Zahlen ist das nicht notwendig:

Wie du an diesen Beispiel siehst, können mit der WHERE Anweisung nicht nur die selektierten Spalten aus der SELECT Zeile eingeschränkt werden, sondern generell alle Daten aus der Tabelle. Hier wurde nur nach Vor- und Nachname selektiert, die Bedingung geht aber über die „actor_ID“ der Schauspieler.

Einfache Bedingung mit Ungleich-Operator:

Nun lassen wir uns alle Schauspieler mit einen Nachnamen ungleich ‚ALLEN‘ ausgeben:

SELECT first_name, last_name AS name FROM actor WHERE Last_name <> ‚ALLEN‘;

Es werden alle Schauspieler (197 von 200) angezeigt, außer die 3 mit Nachnamen ‚ALLEN‘.

Einfache Bedingung mit Kleiner-Operator:

Lassen wir uns z.B. alle Schauspieler mit einer „actor_ID“ kleiner 10 Anzeigen:

 SELECT actor_id, first_name, last_name AS name FROM actor WHERE actor_id < 10;

Zur besseren Überblick/Check lasse ich mir auch die Spalte “actor_ID” im Resultset ausgeben.

Es werden nur jene Zeilen angezeigt, in denen die Spalte „actor_ID“ einen kleineren Wert als 10 enthalten.

Suche nun Datensätze, bei denen der Nachname des Schauspielers kleiner als ‚B‘ ist, also mit ‚A‘ anfängt:

SELECT first_name, last_name AS name FROM actor WHERE Last_name < ‚B‘;


Der Größer-Vergleichsoperator funktioniert anlog zum Kleiner-Operator…

(Visited 3.461 times, 1 visits today)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert