Databases Reference
In-Depth Information
Beispiele
Für den Kunden mit kunden_nr = 100 soll status in 'G' geändert werden.
UPDATE kunde
SET status = 'G'
WHERE kunden_nr = 100;
Die Wertzuweisung an die Spalte status erfolgt in diesem Beispiel über eine Kon-
stante. Die WHERE-Klausel gibt einen Vergleichswert 100 für kunden_nr an. Infol-
gedessen werden alle Kundeneinträge, deren kunden_nr = 100 ist, der Änderung
unterzogen. Wegen der Primärschlüsseleigenschaft dieses Attributs ist dieses nur
ein einziger Kunde (oder gar keiner).
Im folgenden Beispiel wird bei allen Artikeln, deren artikel_nr mit 'K' beginnt,
der Listenpreis um 10 % erhöht.
UPDATE artikel
SET listenpreis = listenpreis * 1.1
WHERE artikel_nr LIKE'K%'
Die Besonderheiten der WHERE-Klausel werden ausführlich in den Abschnitten
über die SELECT-Anweisung erläutert.
Verarbeitung der UPDATE-Anweisung
Zunächst wird die WHERE-Klausel geprüft. Für jedes Tupel, das die Selektionsbe-
dingung erfüllt, werden alle Ausdrücke in der SET-Klausel rechts vom Gleichheits-
zeichen auf Basis der alten Attributwerte berechnet. Anschließend wird den ent-
sprechenden Attributen links vom Gleichheitszeichen jeweils das Ergebnis der
Berechungen zugewiesen. Dies ist von besonderer Bedeutung, wenn von einer
UPDATE-Anweisung mehrere Spalten betroffen sind. Beispiel:
UPDATE artikel
SET bestand = bestand + 100,
mindestbestand = bestand;
In der letzten Zeile wird für den Mindestbestand der alte Bestandswert - nicht der
um 100 erhöhte - eingesetzt.
Wenn eine Kundennummer geändert wird - was man wegen weitreichender orga-
nisatorischer Konsequenzen lieber nicht tun sollte -, wird nach den bei der Daten-
definition festgelegten Regeln (ON UPDATE CASCADE) die Änderung an die Tabellen
bestellung und girokonto weitergegeben.
Beispiel:
UPDATE kunde
SET kunden_nr = 999
WHERE kunden_nr = 105
 
Search WWH ::




Custom Search