# MariaDB UPDATE : mettre à jour les entrées dans les tables

Avec MariaDB `UPDATE`, vous modifiez les données existantes dans une table. Ainsi, vous assurez des informations cohérentes et à jour dans votre base de données.

## À quoi sert la commande MariaDB `UPDATE` ?

La commande `UPDATE` dans [MariaDB](https://www.ionos.fr/digitalguide/serveur/know-how/mariadb-cest-quoi/) **modifie les valeurs** dans une ou plusieurs colonnes d’une table. Contrairement aux commandes `INSERT` ou `DELETE`, `UPDATE` ajuste les données existantes sans créer de nouvelles lignes ni supprimer les existantes. Ainsi, cette commande convient à toutes les situations où les données changent régulièrement, mais où les structures sous-jacentes restent identiques.

Dans les applications basées sur des bases de données, `UPDATE` est souvent utilisé en arrière-plan, par exemple lors de la modification des profils utilisateurs ou de la mise à jour des données de transaction. Les scénarios typiques incluent la correction d’erreurs de saisie, la mise à jour des stocks ou la définition de valeurs de statut dans un processus de commande. Il est crucial de bien déterminer quelles colonnes doivent être ajustées. Sinon, la modification affectera l’ensemble de la table. Pour cette raison, un **filtrage précis** est essentiel pour un entretien sécurisé des données avec `UPDATE`.

## Syntaxe de la commande `UPDATE`

La syntaxe de base de la commande `UPDATE` de MariaDB se compose de trois parties : l’indication de la table, la partie `SET` avec les colonnes à modifier et une clause `WHERE` optionnelle pour restreindre les lignes concernées.

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

## Paramètres et arguments dans la commande `UPDATE`

La commande `UPDATE` dans MariaDB accepte plusieurs **paramètres** qui vous permettent de contrôler précisément quelles données doivent être modifiées et sous quelle forme. Les composants principaux incluent le nom de la table, `SET`, `WHERE`, `ORDER BY` et `LIMIT`.

- `table_name` : nom de la table dans laquelle vous souhaitez modifier des données.
- `SET` : définit une ou plusieurs colonnes qui recevront de nouvelles valeurs. Vous pouvez également utiliser des fonctions ou des opérations arithmétiques, par exemple `SET views = views + 1`.
- `WHERE` : filtre les lignes concernées en fonction d’une condition. Sans `WHERE`, MariaDB modifie toutes les lignes de la table.
- `ORDER BY` : trie les lignes avant la mise à jour. C’est particulièrement pertinent lorsque vous utilisez `LIMIT`.
- `LIMIT` : limite le nombre de lignes modifiées, par exemple aux cinq premiers résultats.
- Clauses `JOIN` : dans des scénarios plus complexes, vous pouvez combiner `UPDATE` avec la commande `JOIN` pour traiter des données provenant de plusieurs tables. Cette variante permet des modifications conditionnelles basées sur le contenu des tables liées.
- `SUBSELECT` ou sous-requêtes : Vous pouvez également utiliser des sous-requêtes dans la clause `SET` ou `WHERE` pour adopter des valeurs dynamiques à partir d’autres tables.
- Fonctions et opérateurs : dans `SET`, vous pouvez utiliser des fonctions, des opérations mathématiques, des conditions (`IF()`) ou des concaténations (`CONCAT()`) pour générer du contenu de manière dynamique.

## Exemples d’utilisation de MariaDB `UPDATE`

La commande `UPDATE` dans MariaDB est utilisée dans de nombreux scénarios réels. Vous pouvez l’utiliser pour corriger des entrées incorrectes, adapter des informations changeantes ou définir automatiquement de nouvelles valeurs lorsque l’état d’un processus change. Découvrez ci-dessous des exemples pratiques d’utilisation de `UPDATE`.

### Mettre à jour une valeur unique

La clause `WHERE` garantit qu’un seul enregistrement spécifique est affecté. Dans cet exemple, nous modifions l’adresse email du client avec l’ID « 42 ».

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

### Modifier plusieurs colonnes simultanément

Ici, nous ajustons à la fois le prix (`price`) et le stock d’un produit. Dans la colonne `stock`, la valeur actuelle est réduite de 1, par exemple après une vente.

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

### Mettre à jour les valeurs pour plusieurs lignes

Cette requête définit le statut de toutes les commandes sur « shipped » (expédié) lorsqu’une date d’expédition est renseignée et que le statut est encore « processing » (en traitement).

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

### Modifier uniquement un certain nombre de lignes

Ici, nous désactivons les 100 utilisateurs les plus anciens. Grâce à `ORDER BY` et `LIMIT`, on peut contrôler quelles lignes seront modifiées en priorité.

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

### MariaDB `UPDATE` avec la condition `IF()`

La fonction `IF()` nous permet de formuler des conditions directement dans la section `SET`. Dans l’exemple suivant, MariaDB vérifie le prix de chaque produit. Si le prix dépasse 100, elle fixe la remise (`discount`) à 15 %, sinon à 5 %.

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


This is a markdown version of: [https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/mariadb-update/](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/mariadb-update/) for AI/LLM consumption.