Logische Verknüpfungen (AND und OR)

Wir können inzwischen Anfragen an die Datenbank senden und dabei sogar bestimmte Information durch verschiedene Operatoren rausfiltern.

Mit den Operatoren "AND", "OR", "AND NOT" und "OR NOT", können wir mehrere Bedingungen logisch miteinander verknüpfen.


AND

Der logische Verknüpfungsoperator "AND" verbindet mehrere Bedingungen innerhalb einer "WHERE"-Klausel, die Ausgabe vom "AND"-Operator ist nur "true", wenn alle verknüpften Abfragen "true" sind.

Bedingung 1 Bedingung 2 Ergebnis
true true true
false false false
false true false
true false false

In diesem Beispiel wollen wir uns nur die Frauen anzeigen lassen, die aktuell verheiratet sind.

Logischer Operator (AND)

SELECT vorname, nachname, familienstand FROM person WHERE anrede='Frau' AND familienstand='verheiratet';

AND NOT

Der Operator "AND NOT" gibt nur "true" aus, wenn die erste Bedingung "true" ist und die zweite Bedingung "false" ist.

Bedingung 1 Bedingung 2 Ergebnis
true true false
false false false
false true false
true false true

Im Beispiel wollen wir uns alle Männer ausgeben lassen, die mal geheiratet haben.

Logischer Operator (AND NOT)

SELECT anrede, vorname, nachname, hochzeitsdatum FROM person WHERE anrede='Herr' AND NOT hochzeitsdatum='NULL';

OR

Der Operator "OR" gibt "true" aus, sobald nur eine der Bedingungen "true" ist. Egal ob die erste, die zweite, beide oder sogar noch mehr Bedingungen. Es wird nur "false" ausgegeben, wenn keine Bedingung "true" ist.

Bedingung 1 Bedingung 2 Ergebnis
true true true
false false false
false true true
true false true

Im Beispiel lassen wir uns alle Adressen anzeigen, die entweder eine Hausnummer 20 haben oder einer Stadt zugewiesen sind, die mit B beginnt.

Logischer Operator (OR)

SELECT strasse, hausnummer, ort FROM adresse WHERE hausnummer='20' OR ort LIKE 'B%';

In diesem Beispiel erkennt man gut, dass die Ludwig-Erhard-Allee 20 in Bonn sowohl die eine als auch die andere Bedingung erfüllt.


OR NOT

Für den "OR NOT"-Operator muss entweder die erste Bedingung "true" oder die zweite Bedingung "false" sein, um "true" zu ergeben.

Bedingung 1 Bedingung 2 Ergebnis
true true true
false false true
false true false
true false true

Im Beispiel werden wir uns alle Personen ausgeben lassen, die zum männlichen Geschlecht gehören und zusätzlich die Frauen, die nicht verheiratet sind.

Logischer Operator (OR NOT)

SELECT anrede, nachname, familienstand FROM person WHERE anrede='Herr' OR NOT familienstand='Verheiratet';

Vermischte Operatoren

Auch eine Kombination der logischen Operatoren ist kein Problem. Damit können Abfragen erstellt werden, die entweder alle verheirateten Frauen und alle Geschiedenen Männer gleichzeitig ausgeben.

Vermischte Operatoren

SELECT anrede, nachname, familienstand FROM person WHERE anrede='Frau' AND familienstand='Verheiratet' OR anrede='Herr' AND familienstand='Geschieden';

Weiter mit Sortierte Ausgaben (ORDER BY)