Databases Reference
In-Depth Information
VNR NAME STATUS GEHALT
---------- ------ ------- ----------
1002 Ute Senior 1995
1003 Uwe Senior 2100
1004 Ulf Junior
1005 Urs Junior 1365
1006 Uta 1500
Danach werden ein
UPDATE
- und ein
DELETE
-Befehl ausge-
führt. Zu beachten ist, dass es Zeilen gibt, bei denen die
WHERE
-
Prädikate nach „wahr“ und andere, bei denen die Prädikate
nach „nicht falsch“, genauer „unbekannt“, ausgewertet werden.
DELETE FROM Verkaeufer
WHERE Gehalt>2000;
UPDATE Verkaeufer
SET Status='Senior'
WHERE Status='Junior';
SELECT * FROM Verkaeufer
Dies führt zu folgender Ausgabe:
VNR NAME STATUS GEHALT
---------- ------ ------- ----------
1002 Ute Senior 1995
1004 Ulf Senior
1005 Urs Senior 1365
1006 Uta 1500
Man sieht, dass Auswertungen nach „unbekannt“ nicht dazu
geführt haben, dass Änderungen in den betroffenen Zeilen
durchgeführt wurden.
X
X>42 X=NULL X IS NULL X IS NOT NULL
18
f
u
f
w
66
w
u
f
w
NULL u
u
w
f
Abb. 6-4:
Überprüfung auf NULL-Werte
Bei Änderungen oder auch Überprüfungen möchte man häufi-
ger gewisse Aktionen davon abhängig machen, ob ein Attri-
butwert NULL ist. Der direkte Ansatz mit
Status=NULL
führt
nicht zum Erfolg, da NULL-Werte in SQL wegen ihrer Beson-
derheit anders geprüft werden müssen. Solche direkten Über-
prüfungen haben immer in der Auswertung das Ergebnis
„undefiniert“. Die korrekte Überprüfung auf NULL-Werte fin-
det in SQL mit
Status IS NULL
bzw.
Status IS NOT
Überprüfung auf
NULL-Werte
134