Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Sentencia UPDATE de MySQL

La sentencia `UPDATE` de MySQL se utiliza para modificar los registros existentes en una tabla. Te permite cambiar uno o varios valores de columna para las filas que cumplan determinadas condiciones.

Utilización

La sentencia `UPDATE` se utiliza cuando necesitas modificar los datos de una tabla. Suele ir seguida de una cláusula `SET` para especificar nuevos valores y de una cláusula opcional `WHERE` para filtrar qué filas deben actualizarse. Aunque la cláusula "DONDE" es opcional, es esencial para actualizar filas concretas y evitar cambios involuntarios en todas las filas de la tabla.

sql
UPDATE table_name
SET column1 = value1, column2 = value2, ...
[WHERE condition];

En esta sintaxis, `UPDATE nombre_tabla` identifica la tabla que se va a actualizar, `SET` asigna nuevos valores a las columnas y la cláusula `WHERE` especifica qué filas deben verse afectadas.

Ejemplos

1. Actualización básica

sql
UPDATE employees
SET salary = 50000
WHERE employee_id = 1234;

Este ejemplo actualiza la columna `salario` a 50.000 para el empleado con un `id_empleado` de 1234. Ten en cuenta el posible impacto en el rendimiento al actualizar una columna en un gran conjunto de datos.

2. Actualizar varias columnas

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

Esta consulta actualiza las columnas "precio" y "existencias" del producto con "id_producto" 5678, reduciendo las existencias en 1. Asegúrate de que la columna `product_id` está indexada para optimizar el rendimiento.

3. Actualizar con una unión

sql
UPDATE orders
JOIN customers ON orders.customer_id = customers.customer_id
SET orders.status = 'shipped'
WHERE customers.country = 'USA';

En este ejemplo, la sentencia `UPDATE` modifica la columna `status` de la tabla `orders` a `enviado` para todos los pedidos asociados a clientes de EE.UU. mediante un join. Ten en cuenta que utilizar uniones en las actualizaciones puede consumir muchos recursos. Optimiza asegurándote de que existen los índices pertinentes.

Consejos y buenas prácticas

  • Utiliza siempre una cláusula "DONDE". Sin una cláusula "DONDE", se actualizarán todas las filas de la tabla, lo que podría provocar cambios no deseados.
  • Haz copias de seguridad de los datos antes de grandes actualizaciones. Haz siempre una copia de seguridad de tus datos antes de ejecutar actualizaciones grandes o críticas para evitar la pérdida de datos.
  • Prueba las actualizaciones con una transacción. Utiliza las transacciones para probar las actualizaciones en un entorno controlado antes de aplicarlas a los datos de producción. Por ejemplo:
    sql
    START TRANSACTION;
    UPDATE employees SET salary = 55000 WHERE employee_id = 1234;
    -- Check the results
    ROLLBACK; -- or COMMIT; based on your assessment
    
  • Revisa los impactos del rendimiento. Considera la posibilidad de indexar las columnas utilizadas en la cláusula `WHERE` para mejorar el rendimiento de las sentencias `UPDATE`.
  • Ten cuidado con las uniones. Cuando utilices uniones en una actualización, comprueba dos veces las condiciones para asegurarte de que se modifican los datos correctos.
  • Utiliza `LIMIT` con `ORDENAR POR`. Para las actualizaciones por lotes, utiliza "LIMITAR" junto con "ORDENAR POR" para gestionar los cambios de datos grandes de forma más segura.
  • Prueba en un entorno que no sea de producción. Sobre todo si se trata de uniones o condiciones complejas, prueba primero las actualizaciones en un entorno que no sea de producción.
  • Minimiza el bloqueo. Por cuestiones de rendimiento, sobre todo con tablas grandes, considera la posibilidad de dividir las actualizaciones grandes en lotes más pequeños y manejables, o de utilizar subconsultas para minimizar el bloqueo.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis