Home - Operatoren www.sqldocu.com
zurück vor



Logische Operatoren


Beschreibung
top
Vergleichsoperatoren liefern als Ergbnis TRUE oder FALSE. Mit logischen Operatoren gelingt es diese Ergebnisse zu verknüpfen. Die 3 logische Opertoren lauten: Es können zwei oder mehr Vergleiche miteinander verknüpft werden. Betrachten wir die
Tabelle emailadressen:

Spaltenname vorname nachname email gewicht
Reihe 1 Michaela König michi@yahoo.de 71
Reihe 2 Kati Müller kati@hotmail.com 48
Reihe 3 Conny Schmid conny3@hotmail.com 63
Reihe 4 Linda Becker linda@hotmail.de 56
Reihe 5 Kati Auer kati@gmx.de 52


Wir wollen die Emailadresse von Kati Auer abfragen:
SELECT email FROM emailadressen WHERE vorname = 'Kati'
Ergebnistabelle:
kati@hotmail.com
kati@gmx.de

Unser Ziel erreichen wir, indem wir den logischen Operator AND verwenden:
SELECT email FROM emailadressen WHERE vorname = 'Kati' AND nachname='Auer'
Ergebnistabelle:
kati@gmx.de




Syntax
top

Die Operatoren AND, OR wirken auf 2 Operanten

     Syntax AND und OR
Operant1
AND | OR
Operant2

Der Operator NOT wirkt auf einen Operanten

     Syntax NOT
NOT Operant

Tabelle: Ergebnistabelle für AND und OR Operator
 Auf der rechten Seite stehen die Ergebnisse,
 welches die Operatoren AND und OR liefern.
A B A AND B A OR B
TRUE TRUE —> TRUE TRUE
TRUE FALSE —> FALSE TRUE
FALSE TRUE —> FALSE TRUE
FALSE FALSE —> FALSE FALSE

Tabelle: Ergebnistabelle für NOT Operator
 Auf der rechten Seite stehen die Ergebnisse,
 welches der Operatoren NOT liefern.
A NOT A
TRUE —> FALSE
FALSE —> TRUE

Tabelle: Bindungsstärke der Operatoren
Die Anweisung
  NOT A AND B
kann unterschiedlich interpretiert werden
  (NOT A) AND B     oder
  NOT (A AND B)
Die Bindungsstärke (BS) der Operatoren bestimmt, wie die Zeile interpretiert wird. Der Operator mit der höchsten Bindungsstärke wird als erstes ausgewertet. In unserem Beispiel besitzt NOT die höchste BS und NOT A wird als erstes ausgewertet.
Somit wird NOT A AND B als (NOT A) AND B interpretiert.
Tip: Immer Klammern verwenden, damit vermeidet man Fehler bezüglich Bindungsstärke und der Kode wird besser lesbar
Operator Bindungsstärke
NOT höchste
AND mittlere
OR niedrigste

Beispiele:
SELECT vorname FROM emailadressen WHERE vorname= 'Kati' AND nachname= 'Auer'
UPDATE emailadressen SET vorname='Katherina' WHERE vorname='Kati' OR vorname='Kathi'
DELETE FROM emailadressen WHERE (NOT (vorname='Kati')) AND (NOT (vorname='Kathi'))


Beispiel Tabelle:
top
Sie wird in mehreren Beispielen verwendet um SQL besser darstellen zu können.
TabelleName: emailAdressen
Die Tabelle emailAdressen besteht aus 4 Spalten und 5 Reihen
Spalte1 hat den Namen vorname.
Spalte2 hat den Namen nachname
Spalte3 hat den Namen email
Spalte4 hat den Namen gewicht

Spaltenname vorname nachname email gewicht
Reihe 1 Michaela König michi@yahoo.de 71
Reihe 2 Kati Müller kati@hotmail.com 48
Reihe 3 Conny Schmid conny3@hotmail.com 63
Reihe 4 Linda Becker linda@hotmail.de 56
Reihe 5 Kati Auer kati@gmx.de 52
Reihe 5 Kathi Becker kathi@gmx.net 52



OR Operator
top
UPDATE emailadressen
  SET vorname='Katherina'
  WHERE vorname='Kati' OR vorname='Kathi'

Es werden jene Zeilen geändert die in der Spalte vorname den Namen Kati oder Kathi enthalten.

Ergebnistabelle:
Michaela König michi@yahoo.de 71
Katherina Müller kati@hotmail.com 48
Conny Schmid conny3@hotmail.com 63
Linda Becker linda@hotmail.de 56
Katherina Auer kati@gmx.de 52
Katherina Becker kathi@gmx.net 52

PHP Syntax     PERL Syntax


AND Operator
top
SELECT vorname, nachname FROM emailadressen
WHERE vorname='Kati' AND nachname='Auer'

Es werden jene Zeilen angezeigt die in der Spalte vorname den Namen Kati und in der Spalte nachname den Namen Auer enthalten.

Ergebnistabelle:
Kati Auer kati@gmx.de 52

PHP Syntax     PERL Syntax


NOT Operator
top
SELECT vorname, nachname FROM emailadressen
WHERE NOT (vorname='Kati')

Es werden jene Zeilen angezeigt die in der Spalte vorname den Namen Kati nicht enthalten.
Hinweis: Die Klammern sind notwendig, da sonst die Zeile folgendermassen interpretiert werden würde:
SELECT vorname, nachname FROM emailadressen WHERE (NOT vorname) ='Kati'

Ergebnistabelle:
Michaela König michi@yahoo.de 71
Conny Schmid conny3@hotmail.com 63
Linda Becker linda@hotmail.de 56
Kathi Becker kathi@gmx.net 52

PHP Syntax     PERL Syntax


top