Die UPDATE-Anweisung in SQL ändert den Inhalt der Einträge einer Tabelle.

Die Anweisung ändert dabei alle Zeilen einer Tabelle oder wählt basierend auf einer zusätzlichen Bedingung eine Teilmenge der Tabelle aus. Die Anwendung erfolgt über die Spaltenauswahl einer Tabelle (SET) in Verbindung mit einer optionalen WHERE-Bedingung:[1]

UPDATE Tabellenname SET Spaltenname = Wert [, Spaltenname = Wert ...] [WHERE Bedingung]

Die Verwendung der UPDATE-Anweisung beschränkt sich auf Benutzer mit Berechtigung zur Datenänderung (UPDATE-Berechtigung) der entsprechenden Tabelle oder Spalte. Die zu ändernden Werte unterliegen den Einschränkungen für Primär(schlüssel), CHECK und NOT NULL.

Beispiele

Bearbeiten

Die Spalte C1 der Tabelle T nimmt in allen Zeilen mit Wert „a“ in Spalte C2 den Wert 1 an:

UPDATE T
   SET C1 = 1
 WHERE C2 = 'a'

Für alle Zeilen mit Wert „a“ in Spalte C2 nimmt Spalte C1 den Wert 9 und Spalte C3 den Wert 4 an:

UPDATE T
   SET C1 = 9,
       C3 = 4
 WHERE C2 = 'a'

Erhöhe den Wert der Spalte C1 um 1 für alle Zeilen mit Wert „a“ in Spalte C2:

UPDATE T
   SET C1 = C1 + 1
 WHERE C2 = 'a'

Positionierung des Strings „Text“ vor dem Wert von Spalte C1, falls die Spalte C2 den Wert „a“ enthält:

UPDATE T
   SET C1 = 'Text' || C1
 WHERE C2 = 'a'

Setze den Wert der Spalte C1 der Tabelle T1 auf 2, sofern die Spalte C2 einen Wert aus der Teilmenge der WHERE-Bedingung enthält. Die Teilmenge enthält dabei diejenigen Werte der Spalte C3 der Tabelle T2, bei denen die Spalte C4 den Wert 0 aufweist:

UPDATE T1
   SET C1 = 2
 WHERE C2 IN ( SELECT C3
                 FROM T2
                WHERE C4 = 0)

Festlegen von Werten mehrerer Spalten in einer einzigen Anweisung:

UPDATE T
   SET C1 = 1,
       C2 = 2

Mehrere WHERE-Bedingungen:

UPDATE T
   SET A = 1
 WHERE C1 = 1
   AND C2 = 2

Die UPDATE-Anweisung erlaubt außerdem Joins, in manchen Datenbanksystemen sogar eine vom FROM-Teil abweichende Notation des SQL-Standards:

UPDATE a
   SET a.[Update_Spalte] = Update_Wert
  FROM Artikel a
       JOIN Systematik s
         ON a.ArtikelID = s.ArtikelID
 WHERE c.classID = 1

Das Datenbanksystem von Oracle stellt (bei vorhandenem Index für ArtikelID) eine weitere Notation zur Verfügung:

UPDATE
(
  SELECT *
    FROM Artikel
    JOIN Systematik
      ON Artikel.ArtikelID = Systematik.ArtikelID
   WHERE Systematik.classID = 1
)
SET [Update_Spalte] = Update_Wert

In manchen Datenbanksystemen wie PostgreSQL definieren sich die Werte der resultierenden Tabelle eines Joins durch je eine UPDATE-Anweisung pro Ergebniszeile.[2][3]

Risiken

Bearbeiten
  • Halloween-Problem: In manchen Update-Anweisungen verursachen die verknüpften Indizes von SET-Definitionen und WHERE-Bedingungen (Endlos)schleifen.
  • Eine Update-Anweisung mit fehlender WHERE-Bedingung wirkt auf alle Einträge der ausgewählten Spalten.

Siehe auch

Bearbeiten

Einzelnachweise

Bearbeiten
  1. MySQL: UPDATE Syntax. Abgerufen am 1. Oktober 2018 (Vereinfacht und übersetzt).
  2. Tech On The Net: PostgreSQL: FROM Clause. Abgerufen am 1. Oktober 2018.
  3. PostgreSQL: Update. Abgerufen am 22. November 2018.

📚 Artikel Terkait di Wikipedia

Microsoft SQL Server

und -funktionen sowie neue T-SQL-Textfunktionen. Die Version 2019 wurde am 4. November 2019 freigegeben. Das Update auf SQL Server 2019 bietet nun Unternehmen

SQL

SQL (offizielle Aussprache [], mitunter auch []; auf Deutsch auch häufig die deutsche Aussprache der Buchstaben) ist eine Datenbanksprache zur Definition

Transact-SQL

Funktionalität von DELETE- und UPDATE-Statements im Vergleich zu SQL durchgeführt. Transact-SQL ist wesentlicher Bestandteil des Microsoft SQL Servers. Bei Anwendungen

Sun Microsystems

für rund eine Milliarde Dollar das Unternehmen MySQL AB, die bis dahin die Open-Source-Datenbank MySQL entwickelte und kommerziell vermarktete. Kurz darauf

Advanced Information Management Prototype

„Erweiterten NF2-Relationen“ (eNF2-Relationen), der darauf abgestimmten SQL-ähnlichen Anfragesprache HDBL, den benutzerdefinierten Datentypen und Funktionen

Windows Server Update Services

Softwarekomponente Software Update Services. Windows Server Update Services ist ein Client-Server-System. Kern der Softwarekomponente ist die SQL-Datenbank (entweder

Datenbanktrigger

Datenbankmanagementsysteme. Bei einer bestimmten Art der Änderungen (z. B. INSERT, UPDATE, DELETE bei SQL) von Daten in einer Tabelle wird ein gespeichertes Programm aufgerufen

SQL-Injection

SQL-Injection (dt. SQL-Einschleusung) ist das Ausnutzen einer Sicherheitslücke in Zusammenhang mit SQL-Datenbanken. Die Sicherheitslücke entsteht durch