· Andrés Ledo · MySQL  · Lectura en 5 min

Cómo usar la sentencia UPDATE de MySQL para modificar los datos de una tabla

¿Listo para dominar el comando MySQL Update? ¡Descubre nuestra guía completa, llena de consejos prácticos y ejemplos reales que te llevarán al siguiente nivel!

¿Listo para dominar el comando MySQL Update? ¡Descubre nuestra guía completa, llena de consejos prácticos y ejemplos reales que te llevarán al siguiente nivel!

La sentencia UPDATE de MySQL es una de las más utilizadas para manipular los datos almacenados en una base de datos relacional. Con esta sentencia, podemos modificar uno o más campos de una o más filas de una tabla, según las condiciones que especifiquemos.

En este artículo, vamos a explicar cómo usar la sentencia UPDATE de MySQL con ejemplos prácticos y sencillos. También veremos algunas opciones y modificadores que podemos aplicar para optimizar el rendimiento y evitar errores.

Índice

Sintaxis básica de la sentencia UPDATE

La sintaxis básica de la sentencia UPDATE es la siguiente:

UPDATE nombre_tabla
SET campo1 = valor1, campo2 = valor2, ...
WHERE condicion;
  • El primer elemento es la palabra clave UPDATE, seguida del nombre de la tabla que queremos modificar.

  • El segundo elemento es la palabra clave SET, seguida de una lista de asignaciones separadas por comas. Cada asignación tiene la forma campo = valor, donde campo es el nombre de la columna que queremos modificar y valor es el nuevo valor que queremos asignarle. El valor puede ser una expresión, una variable, una función o la palabra clave DEFAULT para asignar el valor por defecto de la columna.

  • El tercer elemento es la palabra clave WHERE, seguida de una condición que determina qué filas serán modificadas. La condición puede ser una expresión lógica, una comparación, un operador lógico o una subconsulta. Si no se especifica la cláusula WHERE, todas las filas de la tabla serán modificadas.

Veamos un ejemplo simple. Supongamos que tenemos una tabla llamada clientes con los siguientes datos:

idnombreemailtelefono
1Ana[email protected]123456789
2Luis[email protected]987654321
3Pedro[email protected]456789123

Si queremos cambiar el email y el teléfono de Ana, podemos usar la siguiente sentencia:

UPDATE clientes
SET email = '[email protected]', telefono = '111222333'
WHERE id = 1;

El resultado sería el siguiente:

idnombreemailtelefono
1Ana[email protected]111222333
2Luis[email protected]987654321
3Pedro[email protected]456789123

Modificar varias filas con una sola sentencia UPDATE

Podemos modificar varias filas con una sola sentencia UPDATE si usamos una condición que abarque más de una fila. Por ejemplo, si queremos aumentar en un 10% el precio de todos los productos cuya categoría sea ‘Electrónica’, podemos usar la siguiente sentencia:

UPDATE productos
SET precio = precio * 1.1
WHERE categoria = 'Electrónica';

También podemos usar operadores lógicos como AND, OR y NOT para combinar varias condiciones. Por ejemplo, si queremos cambiar el estado de todos los pedidos cuyo cliente sea Ana o Luis y cuya fecha sea anterior al 1 de enero de 2023, podemos usar la siguiente sentencia:

UPDATE pedidos
SET estado = 'Entregado'
WHERE (cliente = 'Ana' OR cliente = 'Luis') AND fecha < '2023-01-01';

Modificar varias tablas con una sola sentencia UPDATE

MySQL también permite modificar varias tablas con una sola sentencia UPDATE, siempre que haya una relación entre ellas. Para ello, debemos usar la sintaxis múltiple-tabla, que tiene la siguiente forma:

UPDATE tabla1, tabla2, ...
SET asignacion1, asignacion2, ...
WHERE condicion;
  • El primer elemento es la palabra clave UPDATE, seguida de una lista de nombres de tablas separados por comas. Estas tablas deben estar relacionadas por alguna clave foránea o algún campo común.

  • El segundo elemento es la palabra clave SET, seguida de una lista de asignaciones separadas por comas. Cada asignación tiene la forma tabla.campo = valor, donde tabla es el nombre de la tabla que contiene el campo que queremos modificar, campo es el nombre de la columna y valor es el nuevo valor que queremos asignarle. El valor puede ser una expresión, una variable, una función o la palabra clave DEFAULT.

  • El tercer elemento es la palabra clave WHERE, seguida de una condición que determina qué filas serán modificadas. La condición puede ser una expresión lógica, una comparación, un operador lógico o una subconsulta. La condición debe hacer referencia a las tablas que se quieren modificar.

Veamos un ejemplo. Supongamos que tenemos dos tablas relacionadas: empleados y departamentos.

  • La tabla empleados tiene los siguientes campos: id, nombre, email, salario y departamento_id.
  • La tabla departamentos tiene los siguientes campos: id, nombre y presupuesto.
  • La relación entre las tablas es que el campo departamento_id de la tabla empleados es una clave foránea que hace referencia al campo id de la tabla departamentos.

Si queremos aumentar en un 5% el salario de todos los empleados del departamento de ‘Ventas’ y reducir en un 10% el presupuesto de dicho departamento, podemos usar la siguiente sentencia:

UPDATE empleados, departamentos
SET empleados.salario = empleados.salario * 1.05, departamentos.presupuesto = departamentos.presupuesto * 0.9
WHERE empleados.departamento_id = departamentos.id AND departamentos.nombre = 'Ventas';

Opciones y modificadores de la sentencia UPDATE

La sentencia UPDATE de MySQL admite algunas opciones y modificadores que podemos usar para mejorar el rendimiento y evitar errores. Algunos de ellos son:

  • LOW_PRIORITY: Esta opción hace que la ejecución de la sentencia UPDATE se retrase hasta que no haya ningún otro cliente leyendo de la tabla. Esto solo afecta a los motores de almacenamiento que usan bloqueos a nivel de tabla, como MyISAM, MEMORY y MERGE.

  • IGNORE: Esta opción hace que la sentencia UPDATE ignore los errores y continúe con la ejecución. Esto puede ser útil para evitar que la sentencia se detenga por violaciones de restricciones o valores duplicados.

  • ORDER BY: Esta opción permite ordenar las filas antes de modificarlas, según el criterio que especifiquemos. Esto solo se puede usar con la sintaxis de una sola tabla.

  • LIMIT: Esta opción permite limitar el número de filas que se modifican, según el valor que especifiquemos. Esto solo se puede usar con la sintaxis de una sola tabla.

  • PARTITION: Esta opción permite especificar una o más particiones o subparticiones de la tabla que se quieren modificar. Solo se comprobarán las filas que estén en las particiones o subparticiones indicadas.


En este artículo, hemos visto cómo usar la sentencia UPDATE de MySQL para modificar los datos de una o más tablas. Hemos visto la sintaxis básica, algunos ejemplos prácticos y algunas opciones y modificadores que podemos aplicar.

La sentencia UPDATE es una herramienta muy poderosa para manipular los datos almacenados en una base de datos relacional, pero también hay que usarla con cuidado y precaución, ya que puede alterar los datos de forma irreversible si no se especifican las condiciones adecuadas.

Articulos relacionados:

Este artículo forma parte del tutorial de MySQL.

    Compartir
    Volver al blog

    Artículos relacionados

    Ver todos los artículos »
    Validar DNI, NIE y CIF online

    Validar DNI, NIE y CIF online

    En España, validar la autenticidad de documentos como el DNI, NIE y CIF es crucial para cumplir con las regulaciones y prevenir fraudes. Las...