Zum Inhalt springen
SemaTrain

SQL-WISSEN · Datenänderung

INSERT, UPDATE und DELETE

Wie Datenänderungen mit INSERT, UPDATE und DELETE fachlich abgegrenzt, vorab kontrolliert und in einen sicheren Änderungsworkflow eingebettet werden.

Kurzdefinition

INSERT fügt neue Zeilen ein. UPDATE ändert Werte vorhandener Zeilen. DELETE entfernt Zeilen. Welche Zeilen von UPDATE oder DELETE betroffen sind, wird durch die jeweilige Bedingung bestimmt.

Die drei Operationen gehören zur Datenmanipulation. Transaktionsstart, Rückgabemöglichkeiten und Diagnose der betroffenen Zeilen unterscheiden sich im Detail zwischen Datenbanksystemen.

Sicherer Änderungsworkflow

SemaTrain behandelt Änderungen nicht als isolierte Syntaxübung, sondern als kontrollierten Ablauf: Zielmenge prüfen, Änderung ausführen, Ergebnis verifizieren und anschließend bewusst über COMMIT oder ROLLBACK entscheiden.

Für UPDATE und DELETE ist ein Preview-SELECT mit derselben fachlichen Filterlogik ein nützliches Kontrollmuster. Er reduziert das Risiko einer falsch abgegrenzten Zielmenge, garantiert aber weder Atomizität noch Schutz vor Änderungen durch konkurrierende Transaktionen; dafür sind Transaktions- und Isolationsmechanismen des jeweiligen Systems maßgeblich.

Preview und kontrolliertes UPDATE
SELECT id, status
FROM bestellung
WHERE id = 42;

UPDATE bestellung
SET status = 'bezahlt'
WHERE id = 42;

Zielmenge, Integrität und Transaktion

Eine syntaktisch gültige Datenänderung ist noch keine fachlich richtige Datenänderung. Entscheidend sind Zielmenge, Integritätsregeln und die gewünschte Transaktionsgrenze.

Constraints – insbesondere CHECK-, UNIQUE- und referenzielle FOREIGN-KEY-Regeln – können Änderungen ablehnen. Ob und wie betroffene Zeilen gemeldet werden und welche Erweiterungen wie RETURNING verfügbar sind, ist produktbezogen zu prüfen.

Kritisch unterscheiden

  • Ein WHERE-Filter grenzt Zielzeilen ein; eine Transaktion steuert dagegen die fachliche Einheit und Bestätigung von Änderungen.
  • INSERT erzeugt neue Zeilen, UPDATE verändert vorhandene Zeilen und DELETE entfernt Zeilen.
  • Ein erfolgreicher SQL-Befehl bedeutet nicht automatisch, dass die fachlich beabsichtigte Zeilenmenge geändert wurde.

Typische Fehler und Missverständnisse

  • UPDATE oder DELETE auszuführen, ohne die Zielmenge vorher fachlich zu prüfen.
  • Eine Clientanzeige zu betroffenen Zeilen als überall identische SQL-Semantik zu behandeln.
  • Mehrere zusammengehörige Änderungen ohne bewusst definierte Transaktionsgrenze auszuführen.

Praxisfall

Statusänderung mit Sicherheitskontrolle

Mehrere Bestellungen sollen von offen auf bezahlt gesetzt werden. Vor der Änderung muss nachvollziehbar sein, welche Zeilen betroffen sind und wie bei einem Fehler zurückgegangen werden kann.

  • Welche SELECT-Abfrage verwenden Sie zur Kontrolle der Zielmenge?
  • Welche Bedingung gehört in das UPDATE?
  • Wann ist eine gemeinsame Transaktion fachlich sinnvoll?

Selbsttest

Verständnis prüfen

1. Welche Aussage beschreibt einen sicheren UPDATE-Ablauf am besten?

Antwortmöglichkeiten zu Frage 1
Antwort und Begründung anzeigen

Ein sicherer Ablauf beginnt mit einer bewusst geprüften Zielmenge und endet mit der Kontrolle der tatsächlich beabsichtigten Änderung.

2. Was unterscheidet WHERE von einer Transaktionsgrenze?

Antwortmöglichkeiten zu Frage 2
Antwort und Begründung anzeigen

WHERE beschreibt die Zielmenge einer Anweisung. Die Transaktion bündelt eine oder mehrere Operationen zu einer fachlichen Arbeitseinheit.

Transfer

Auf die eigene Praxis übertragen

Nehmen Sie eine reale Datenänderung aus Ihrem Umfeld und schreiben Sie zuerst die Kontrollabfrage. Notieren Sie dann, welche Zeilenmenge, Constraints und Transaktionsgrenze vor einem produktiven Einsatz geprüft werden müssten.

Weiterlernen

Verknüpfungen

Quellen, Prüfstand und Grenzen

Fachliche Nachvollziehbarkeit

Quellen geprüft
2026-09-18
Versionsrahmen
Gemeinsamer SQL-Kern mit explizit gekennzeichneten Varianten für SQLite 3.53.4, PostgreSQL 18 und MySQL 8.4 LTS.
Aussagebereich
INSERT, UPDATE und DELETE werden mit einem sicheren Änderungsworkflow vermittelt. Transaktionsstart und betroffene Zeilen sind produktabhängig. ACID und Transaktionsprinzipien werden gemeinsam vermittelt. Locking, affected rows und einzelne Syntaxformen werden je Datenbanksystem getrennt.
Originalität
Faktenbasis aus Primärquellen; Einordnung, Struktur, Beispiele, Selbsttests und Transfer sind eigenständige SemaTrain-Inhalte.

Grenzen

  • Rückgabeklauseln, affected-row-Diagnose und einzelne DML-Erweiterungen sind produktabhängig.
  • Produktspezifische Syntax und Verhalten können sich zwischen SQLite, PostgreSQL und MySQL unterscheiden.
  • Versionsabhängige Aussagen gelten für den im Quellenbereich ausgewiesenen Prüfstand.

Primärquellen

Projekt-Primärdokumentation

SQL As Understood By SQLite

SQLite

Version: SQLite 3.53.4

Bezug: SQLite-Sprachübersicht einschließlich INSERT, UPDATE und DELETE.

Projekt-Primärdokumentation

SQLite Transaction

SQLite

Version: SQLite 3.53.4

Bezug: BEGIN, COMMIT, ROLLBACK und SQLite-Transaktionsverhalten.

Projekt-Primärdokumentation

SQLite Core Functions

SQLite

Version: SQLite 3.53.4

Bezug: changes() und weitere SQLite-Kernfunktionen.

Projekt-Primärdokumentation

PostgreSQL 18 UPDATE

PostgreSQL

Version: PostgreSQL 18

Bezug: UPDATE und RETURNING.

Hersteller-Primärdokumentation

MySQL 8.4 SAVEPOINT Statement

MySQL

Version: MySQL 8.4 LTS

Bezug: SAVEPOINT, ROLLBACK TO SAVEPOINT und RELEASE SAVEPOINT.