|
Eine Bedingung kann beliebig komplex formuliert werden. Dabei müssen die
Verknüpfungsmöglichkeiten (Verkettung) der einzelnen Bedingungen erweitert
werden. Komplexere Abfragen werden mittels Kombination von verschiedenen
Attributen formuliert.
Für solche Abfragen werden logische
Operatoren verwendet, welche logische Ausdrücke (mit zwei
möglichen Werten „wahr“ oder „falsch“) verbinden.
Logische Operatoren | Bedeutung | Ergebnis | Venn-Diagramme |
---|---|---|---|
AND | Durchschnitt | Wahr, wenn beide wahr sind. | |
OR | Vereinigung | Wahr, wenn mind. einer wahr ist. | |
XOR | ausschliessendes OR | Wahr, wenn genau einer wahr ist. | |
NOT | Differenz | Wahr, wenn einer falsch ist. |
Um solche Abfragen verständlich zu machen, sind die Venn-Diagramme der
Booleschen Operatoren in der vorhergehenden Tabelle und im Folgenden dargestellt.
Die Kreise Nummer 1 und 2 stellen graphisch zwei Bedingungen dar; die schraffierte Fläche
repräsentiert die wahre Aussage, während der Teil ausserhalb des Kreises keinem
Abfrageresultat entspricht.
Zur Erläuterung soll das vorangegangene Beispiel weiter verwendet
werden.
Kreis 1 : Baumart = „Lärche“
Kreis 2 : Vorrat > 110 m3/ha
Im Folgenden wird für jeden Operator gezeigt, wie eine SQL-Abfrage formuliert werden kann und wie die Resultate dargestellt werden.
INPUT
Grafik
|
Tabelle
|
Beispiel 1:
OPERATOR | ABFRAGE | SQL |
---|---|---|
AND | Suche alle Parzellen, die mit Lärchen bewaldet sind und einen Vorrat grösser als 110m3/ha aufweisen. | select ParzelleID, Baumart, Vorrat from Parzelle where Baumart = „Lärche“ and Vorrat > 110 |
Beispiel 2:
OPERATOR | ABFRAGE | SQL |
---|---|---|
OR | Suche alle Parzellen, die mit Lärchen bewaldet sind oder einen Vorrat grösser als 110m3/ha aufweisen. | select ParzelleID, Baumart, Vorrat from Parzelle where Baumart = „Lärche“ or Vorrat > 110 |
Beispiel 3:
OPERATOR | ABFRAGE | SQL |
---|---|---|
XOR | Suche alle Parzellen, die mit Lärchen bewaldet sind oder einen Vorrat grösser als 110m3/ha aufweisen, die aber nicht beide Bedingungen gleichzeitig erfüllen. | select ParzelleID, Baumart, Vorrat from Parzelle where Baumart = „Lärche“ xor Vorrat > 110 |
Beispiel 4:
OPERATOR | ABFRAGE | SQL |
---|---|---|
NOT | Suche alle Parzellen, die mit Lärchen bewaldet sind, aber deren Vorrat nicht grösser als 110m3/ha ist. | select ParzelleID, Baumart, Vorrat from Parzelle where Baumart = „Lärche“ not Vorrat > 110 |