· 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!
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
- Modificar varias filas con una sola sentencia UPDATE
- Modificar varias tablas con una sola sentencia UPDATE
- Opciones y modificadores de la sentencia UPDATE
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
, dondecampo
es el nombre de la columna que queremos modificar yvalor
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:
id | nombre | telefono | |
---|---|---|---|
1 | Ana | [email protected] | 123456789 |
2 | Luis | [email protected] | 987654321 |
3 | Pedro | [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:
id | nombre | telefono | |
---|---|---|---|
1 | Ana | [email protected] | 111222333 |
2 | Luis | [email protected] | 987654321 |
3 | Pedro | [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
, dondetabla
es el nombre de la tabla que contiene el campo que queremos modificar,campo
es el nombre de la columna yvalor
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
ydepartamento_id
. - La tabla
departamentos
tiene los siguientes campos:id
,nombre
ypresupuesto
. - La relación entre las tablas es que el campo
departamento_id
de la tablaempleados
es una clave foránea que hace referencia al campoid
de la tabladepartamentos
.
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.
- Tipos de datos MySQL
- Comando para crear una tabla en MySQL
- Insertar datos en MySQL
- SELECT MySQL ejemplos
- Like MySQL
- Contar registros en MySQL
- MySQL sumar columnas
- Indice MySQL
- Crear una vista en MySQL
- LIMIT sql server ejemplo
- UPDATE MySQL ejemplo
- Comando para borrar base de datos MySQL
- Insert or UPDATE MySQL
- MySQL Truncate table
- MySQL show databases
- Comando DELETE MySQL