# MariaDB UPDATE: Einträge in Tabellen aktualisieren

Mit MariaDB `UPDATE` ändern Sie vorhandene Daten in einer Tabelle. So sorgen Sie für konsistente und aktuelle Informationen in Ihrer Datenbank.

## Was macht der MariaDB `UPDATE`-Befehl?

Der `UPDATE`-Befehl in [MariaDB](https://www.ionos.at/digitalguide/server/knowhow/was-ist-mariadb/) **verändert Werte** in einer oder mehreren Spalten einer Tabelle. Im Unterschied zu Befehlen wie `INSERT` oder `DELETE` passt `UPDATE` bestehende Daten an, ohne neue Zeilen zu erzeugen oder bestehende zu entfernen. Damit eignet sich der Befehl für alle Situationen, in denen sich Daten regelmäßig ändern, aber die zugrunde liegenden Strukturen gleichbleiben.

In datenbankgestützten Anwendungen kommt `UPDATE` häufig im Hintergrund zum Einsatz, zum Beispiel beim Bearbeiten von Benutzerprofilen oder beim Fortschreiben von Transaktionsdaten. Typische Einsatzszenarien sind das Korrigieren von Fehleingaben, das Aktualisieren von Lagerbeständen oder das Setzen von Statuswerten in einem Bestellprozess. Entscheidend ist dabei, dass Sie genau bestimmen, welche Spalten angepasst werden sollen. Andernfalls wirkt sich die Änderung auf die gesamte Tabelle aus. Aus diesem Grund gehört eine **präzise Filterung** bei `UPDATE` zum Alltag jeder sicheren Datenpflege.

## Syntax des `UPDATE`-Befehls

Die grundlegende Syntax des MariaDB `UPDATE`-Befehls besteht aus drei Teilen: der Angabe der Tabelle, dem `SET`-Teil mit den zu ändernden Spalten sowie einer optionalen `WHERE`-Klausel, um die betroffenen Zeilen einzugrenzen.

```sql
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
```

## Parameter und Argumente im `UPDATE`-Befehl

Der `UPDATE`-Befehl in MariaDB akzeptiert mehrere **Parameter**, mit denen Sie genau steuern, welche Daten geändert werden sollen und in welcher Form. Zu den wichtigsten Bestandteilen gehören der Tabellenname, `SET`, `WHERE`, `ORDER BY` und `LIMIT`.

- `table_name`: Name der Tabelle, in der Sie Daten ändern möchten.
- `SET`: Definiert eine oder mehrere Spalten, die neue Werte erhalten. Sie können auch Funktionen oder Rechenoperationen verwenden, zum Beispiel `SET views = views + 1`.
- `WHERE`: Filtert die betroffenen Zeilen anhand einer Bedingung. Ohne `WHERE` ändert MariaDB alle Zeilen der Tabelle.
- `ORDER BY`: Sortiert die Zeilen vor dem Update. Das ist besonders relevant, wenn Sie `LIMIT` einsetzen.
- `LIMIT`: Begrenzen Sie die Anzahl der geänderten Zeilen, zum Beispiel auf die ersten fünf Treffer.
- `JOIN`-Klauseln: In komplexeren Szenarien können Sie `UPDATE` mit dem Befehl `JOIN` kombinieren, um Daten aus mehreren Tabellen zu verarbeiten. Diese Variante erlaubt bedingte Änderungen basierend auf verknüpften Tabelleninhalten.
- `SUBSELECT` oder Unterabfragen: Sie können in der `SET`- oder `WHERE`-Klausel auch Unterabfragen verwenden, um dynamische Werte aus anderen Tabellen zu übernehmen.
- Funktionen und Operatoren: Innerhalb von `SET` können Sie Funktionen, Rechenoperationen, Bedingungen (`IF()`) oder Verkettungen (`CONCAT()`) einsetzen, um Inhalte dynamisch zu erzeugen.

## Beispiele für den Einsatz von MariaDB `UPDATE`

Der `UPDATE`-Befehl in MariaDB kommt in vielen realen Szenarien zur Anwendung. Sie können damit fehlerhafte Einträge korrigieren, sich verändernde Informationen anpassen oder automatisch neue Werte setzen, sobald sich der Status eines Prozesses ändert. Im Folgenden erklären wir Ihnen praxisnahe Beispiele zur Verwendung von `UPDATE`.

### Einen einzelnen Wert aktualisieren

Die `WHERE`-Klausel stellt sicher, dass nur ein bestimmter Datensatz betroffen ist. In diesem Beispiel ändern wir die E-Mail-Adresse des Kunden mit der ID „42“.

```sql
UPDATE customers
SET email = 'new.email@example.com'
WHERE customer_id = 42;
```

### Mehrere Spalten gleichzeitig ändern

Hier passen wir sowohl den Preis (`price`) als auch den Lagerbestand eines Produkts an. In der Spalte `stock` wird der aktuelle Wert um 1 reduziert, etwa nach einem Verkauf.

```sql
UPDATE products
SET price = 19.99, stock = stock - 1
WHERE product_id = 1001;
```

### Werte für mehrere Zeilen aktualisieren

Diese Abfrage setzt den Status aller Bestellungen auf „shipped“, bei denen ein Versanddatum vorhanden ist und der Status noch auf „processing“ steht.

```sql
UPDATE orders
SET status = 'shipped'
WHERE shipping_date IS NOT NULL AND status = 'processing';
```

### Nur eine bestimmte Anzahl von Zeilen ändern

Hier deaktivieren wir in MariaDB die 100 Benutzer mit dem ältesten Login. Durch `ORDER BY` und `LIMIT` lässt sich steuern, welche Zeilen bevorzugt geändert werden.

```sql
UPDATE users
SET active = 0
ORDER BY last_login ASC
LIMIT 100;
```

### MariaDB `UPDATE` mit `IF()`-Bedingung

Die Funktion `IF()` erlaubt es uns, Bedingungen direkt innerhalb des `SET`-Abschnitts zu formulieren. MariaDB prüft im folgenden Beispiel den Preis jedes Produkts. Wenn der Preis über 100 liegt, setzt sie den Rabatt (`discount`) auf 15 Prozent, andernfalls auf 5 Prozent.

```sql
UPDATE products
SET discount = IF(price > 100, 0.15, 0.05);
```


This is a markdown version of: [https://www.ionos.at/digitalguide/hosting/hosting-technik/mariadb-update/](https://www.ionos.at/digitalguide/hosting/hosting-technik/mariadb-update/) for AI/LLM consumption.