Databases Reference
In-Depth Information
In Tabelle 10.9 sehen wir, dass unser Datenbestand nur einen Datensatz enthält,
in dem die beiden Attribute
titel
und
reihe
den gleichen Wert haben.
Tabelle 10.9:
Ergebnis der Abfrage aus Listing 10.12
reihe
titel
band
preis
jahr
Gespenster Geschichten
Gespenster Geschichten
1
1.20
1974
Ein weiteres Beispiel für den Einsatz von logischen Operatoren sehen wir hier:
Listing 10.13:
Alle Asterixalben, die weniger als
6.0
kosten.
select
*
from alben
where reihe='Asterix' and preis<6.00
Es werden alle Asterix-Alben ermittelt, die weniger als
6.0
kosten (siehe Tabel-
le 10.10).
Tabelle 10.10:
Ergebnis der Abfrage aus Listing 10.13
reihe
titel
band
preis
jahr
Asterix
Asterix der Gallier
1
2.80
1968
Asterix
Asterix und Kleopatra
2
2.80
1968
Asterix
Asterix als Legionär
10
3.00
null
Asterix
Die Trabantenstadt
17
3.80
1974
Asterix
Der große Graben
25
5.00
1980
Probleme können uns hier wieder
null
-Werte machen. Bei arithmetischen Opera-
toren wie
+
und bei Vergleichsoperatoren wie
<
ist das Ergebnis
null
, wenn auch
nur einer der Operanden
null
ist. So einfach ist das bei Booleschen Operatoren
nicht. Weil
null
etwas Unbekanntes repräsentiert, müssen die beiden möglichen
Wahrheitswerte
true
und
false
bei der Ergebnisbildung berücksichtigt werden.
Bei
true and null
sind also die beiden Ergebnisse
true and true
und
true and false
möglich. Da sich einmal
true
und einmal
false
ergibt,
ist das Ergebnis wieder unbestimmt, also
null
.
Anders ist das bei
true or null
; hier ergibt sowohl
true or true
als
auch
true or false
den Wert
true
. Das Ergebnis ist somit
true
.
10.3
Einige nützliche Operatoren
Im SQL-Standard sind auch Operatoren definiert, die die Natürlichsprachlichkeit
unserer Anweisungen erhöhen und uns einige Schreibarbeit abnehmen.