# MariaDB UPDATE: cómo actualizar registros en tablas

Con MariaDB `UPDATE` es posible modificar los datos existentes en una tabla y garantizar que tu base de datos se mantenga siempre coherente y actualizada.

## ¿Qué hace el comando `UPDATE` en MariaDB?

El comando `UPDATE` en [MariaDB](https://www.ionos.mx/digitalguide/servidores/know-how/que-es-mariadb/) **modifica valores** en una o varias columnas de una tabla. A diferencia de comandos como `INSERT` o `DELETE`, `UPDATE` ajusta datos existentes sin generar nuevas filas ni eliminar las actuales. Por ello, es ideal para todas aquellas situaciones en las que los datos cambian con frecuencia, pero la estructura de la tabla se mantiene.

En aplicaciones basadas en bases de datos, `UPDATE` suele ejecutarse en segundo plano, por ejemplo, al editar perfiles de usuario o al registrar transacciones. Sus usos más comunes incluyen la corrección de errores de entrada, la actualización de inventarios o el cambio de estados en un proceso de pedido. Es fundamental indicar con precisión qué columnas deben actualizarse; de lo contrario, la modificación podría afectar a toda la tabla. Por esta razón, un **filtrado preciso** mediante `UPDATE` es clave para una gestión de datos segura.

## Sintaxis del comando `UPDATE`

La sintaxis básica del comando `UPDATE` en MariaDB consta de tres partes: la indicación de la tabla, la cláusula `SET` con las columnas a modificar y una cláusula opcional `WHERE` para limitar las filas afectadas.

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

## Parámetros y argumentos del comando `UPDATE`

El comando `UPDATE` en MariaDB admite varios **parámetros** que permiten definir con precisión qué datos se van a modificar y cómo hacerlo. Los más relevantes son el nombre de la tabla, `SET`, `WHERE`, `ORDER BY` y `LIMIT`.

- `table_name`: indica la tabla en la que deseas realizar cambios.
- `SET`: define una o varias columnas que recibirán nuevos valores. También puedes aplicar funciones u operaciones matemáticas, por ejemplo: `SET views = views + 1`.
- `WHERE`: especifica la condición para filtrar las filas que se van a actualizar. Si omites `WHERE`, MariaDB modificará todas las filas de la tabla.
- `ORDER BY`: ordena las filas antes de ejecutar la actualización, algo especialmente útil en combinación con `LIMIT`.
- `LIMIT`: limita el número de filas modificadas, por ejemplo, a las cinco primeras coincidencias.
- Cláusulas `JOIN`: en casos más avanzados puedes combinar `UPDATE` con `JOIN` para modificar datos basados en información de varias tablas relacionadas.
- `SUBSELECT` o subconsultas: permiten obtener valores dinámicos de otras tablas dentro de las cláusulas `SET` o `WHERE`.
- Funciones y operadores: en `SET` puedes emplear funciones, operaciones, condiciones (`IF()`) o concatenaciones (`CONCAT()`) para generar valores dinámicos.

## Ejemplos de uso de MariaDB `UPDATE`

El comando `UPDATE` en MariaDB se aplica en numerosos escenarios reales. Con él puedes corregir errores de entrada, adaptar información que cambia con el tiempo o establecer valores automáticamente cuando se actualiza el estado de un proceso. A continuación, encontrarás ejemplos prácticos de cómo utilizar `UPDATE`.

### Actualizar un único valor

La cláusula `WHERE` asegura que solo se modifique un registro concreto. En este caso, se actualiza la dirección de correo electrónico del cliente con el ID “42”:

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

### Modificar varias columnas a la vez

En este ejemplo se actualizan tanto el precio (`price`) como el stock de un producto. En la columna `stock`, el valor actual se reduce en 1, por ejemplo, tras una venta:

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

### Actualizar valores en varias filas

Esta consulta cambia el estado de todos los pedidos a “shipped” (enviado) cuando existe una fecha de envío y el estado actual sigue siendo “processing” (en proceso):

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

### Modificar solo un número determinado de filas

En este ejemplo se desactivan los 100 usuarios con el inicio de sesión más antiguo en MariaDB. Gracias a `ORDER BY` y `LIMIT` puedes controlar qué filas se actualizan primero.

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

### Usar `UPDATE` en MariaDB con condición `IF()`

La función `IF()` permite establecer condiciones directamente en la sección `SET`. En el siguiente ejemplo, MariaDB comprueba el precio de cada producto: si el precio es superior a 100, establece un 15 % de descuento (`discount`) y, de lo contrario, asigna un 5 %.

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


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