mysql update statement tutorial update query syntax examples
Este tutorial explica la instrucción UPDATE de MySQL junto con la sintaxis y los ejemplos de consultas. También aprenderá diferentes variaciones del comando de tabla de actualización de MySQL:
Al igual que con cualquier otra base de datos, siempre tenemos la necesidad de actualizar o modificar o cambiar los datos existentes en las tablas. En MySQL, tenemos la instrucción UPDATE que podría usarse para actualizar o modificar los datos en la tabla.
Con este comando, podemos actualizar uno o varios campos. Podemos actualizar los valores de una tabla en particular a la vez. Al usar la cláusula WHERE, podemos especificar las condiciones utilizadas, especialmente cuando existe la necesidad de actualizar filas específicas de una tabla.
Antes de continuar, tenga en cuenta que estamos utilizando MySQL versión 8.0. Puedes descargarlo desde aquí.
Lo que vas a aprender:
- Sintaxis de la tabla UPDATE de MySQL
- Comando de tabla UPDATE de MySQL
- # 1) Actualización de MySQL en una sola columna
- # 2) MySQL actualiza varias columnas
- # 3) Actualización de MySQL con función REPLACE
- # 4) ACTUALIZACIÓN de MySQL usando la instrucción SELECT
- # 5) ACTUALIZACIÓN de MySQL en varias filas
- # 6) ACTUALIZACIÓN de MySQL usando la palabra clave INNER JOIN
- # 7) ACTUALIZACIÓN de MySQL usando la palabra clave LEFT JOIN
- Preguntas y respuestas frecuentes
- Conclusión
Sintaxis de la tabla UPDATE de MySQL
|_+_|Explicación de la sintaxis:
- La sintaxis comienza con la palabra clave “UPDATE”, informando así al servidor MySQL sobre el tipo de actividad a realizar. Esta es una palabra clave obligatoria y no se puede omitir.
- Luego viene el nombre de la tabla en la que se debe realizar la acción de actualización. Esto es obligatorio y no se puede omitir.
- En tercer lugar, es nuevamente una palabra clave: SET. Esta palabra clave informa a MySQL Server sobre los valores que se actualizarán para los nombres de las columnas. Esta es una palabra clave obligatoria y no se puede omitir.
- A continuación, se actualizarán los nombres de las columnas junto con sus valores correspondientes. Esto también es obligatorio y no se puede omitir.
- Luego viene la condición DONDE, que restringe o filtra el número de filas de destino en las que se debe aplicar la acción ACTUALIZAR. WHERE también es una palabra clave, pero opcional.
Sin embargo, la cláusula WHERE es significativa. Si no se menciona, o si la condición no se establece correctamente, ni la tabla ni las filas no requeridas se actualizarán.
Modificadores en una instrucción de tabla UPDATE
A continuación se enumeran los modificadores en una declaración UPDATE.
BAJA PRIORIDAD: Este modificador informa al motor MySQL para retrasar la actualización hasta que no haya lectura de conexión de la tabla.
IGNORAR: Este modificador informa a MySQL Engine que continúe con la operación UPDATE incluso si hay algún error. No se realiza ninguna acción de actualización en las filas que provocaron errores.
Ejemplo de ACTUALIZACIÓN de MySQL
A continuación se muestra una tabla de muestra creada en MySQL.
Nombre de esquema: Pacífico
Nombre de la tabla: empleados
Nombres de columna:
- empNum: contiene valores enteros para el número de empleado.
- lastName: contiene valores varchar para el apellido del empleado.
- firstName: contiene valores varchar para el nombre del empleado.
- email: contiene valores varchar para el ID de correo electrónico del empleado.
- deptNum: contiene varchar para el ID de departamento al que pertenece un empleado.
- salario: contiene valores decimales de salario para cada empleado.
Nombre de esquema: Pacífico
Nombre de la tabla: departamentos
Nombres de columna:
- deptNum: contiene varchar para el ID de departamento dentro de una organización.
- ciudad: contiene el nombre de la ciudad desde la que trabajan los departamentos.
- país: contiene el nombre del país correspondiente a la ciudad.
- bonificación: contiene el valor porcentual de la bonificación.
Comando de tabla UPDATE de MySQL
# 1) Actualización de MySQL en una sola columna
Ahora, busquemos un registro que nos gustaría actualizar. Primero, veremos un escenario en el que tenemos que actualizar una sola columna usando la palabra clave UPDATE.
Aquí hay un empleado con el número de empleado 1008.
La consulta y sus correspondientes resultados son los siguientes:
Actualicemos el ID de correo electrónico de este empleado de ob@gmail.com a oliver.bailey@gmail.com, utilizando la palabra clave UPDATE.
ACTUALIZAR: La palabra clave informa al motor MySQL que la declaración se trata de Actualizar una tabla.
COLOCAR: Esta cláusula establece el valor del nombre de la columna mencionado después de esta palabra clave en un nuevo valor.
DÓNDE: Esta cláusula especifica la fila particular que debe actualizarse.
Después de ejecutar la instrucción UPDATE, la salida mostrará las estadísticas relacionadas con la ejecución de la instrucción.
A continuación se muestran los detalles que se muestran:
- Una declaración que se ejecutó.
- Mensajes que muestran la cantidad de filas que se actualizaron y si hubo alguna advertencia.
Para verificar la salida de la instrucción UPDATE, volvamos a ejecutar la instrucción SELECT para ver el cambio en el ID de correo electrónico.
Instantánea de la tabla antes:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
7 | Roma | Italia | ||
1008 | Oliver | Muralla exterior | ob@gmail.com | 3 |
Consulta:
|_+_|Instantánea de la tabla después:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
1008 | Oliver | Muralla exterior | oliver.bailey@gmail.com | 3 |
# 2) MySQL actualiza varias columnas
La sintaxis para actualizar más de una columna usando la instrucción UPDATE es la misma que para actualizar una sola columna. Una sola instrucción SET tendrá varios nombres de columna junto con su nuevo valor que debe establecerse, separados por una coma.
Echemos un vistazo a la fila que necesitamos actualizar. Fila con el número de empleado como 1003.
Aquí, intentaremos actualizar el apellido de 'Mary' a 'Margaret' y luego la ID de correo electrónico de ml@gmail.com a margaret.langaley@gmail.com.
La siguiente es la consulta UPDATE. Observe los nombres de las columnas separados por una coma.
El resultado de la ejecución anterior muestra las mismas estadísticas que en el caso anterior.
A continuación se muestra la salida para el mismo registro posterior a la ejecución de la instrucción UPDATE.
Instantánea de la tabla antes:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
1003 | María | Langley | ml@gmail.com | 2 |
Consulta:
|_+_|Instantánea de la tabla después:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
1003 | Margaret | Langley | margaret.langley@gmail.com | 3 |
# 3) Actualización de MySQL con función REPLACE
Veamos más sobre el uso de la función REEMPLAZAR para ACTUALIZAR una fila en la tabla. Aquí está nuestro registro de destino que queremos actualizar.
El siguiente registro es para el empleado número 1010. Nuestro objetivo es actualizar la ID de correo electrónico de ja@gmail.com a jacob.armstrong@gmail.com.
Usemos la siguiente consulta ACTUALIZAR con la función REEMPLAZAR que actualizará el ID de correo electrónico.
Los siguientes son los parámetros que se pasan en la función REPLACE. Los 3 parámetros son de naturaleza posicional, es decir, el orden de los parámetros no se puede modificar.
1S tParámetro: contiene el nombre del ID de correo electrónico.
2Dakota del NorteParámetro: contiene el ID de correo electrónico FROM que se va a cambiar.
3rdParámetro: contiene el ID de correo electrónico de TO, que es el nuevo valor.
A continuación se muestra la instantánea de la tabla posterior a la ejecución de la declaración UPDATE:
Instantánea de la tabla antes:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
1010 | Jacob | Armstrong | ja@gmail.com | 4 |
Consulta:
|_+_|Instantánea de la tabla después:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
1010 | Jacob | Armstrong | jacob.armstrong@gmail.com | 4 |
# 4) ACTUALIZACIÓN de MySQL usando la instrucción SELECT
En este tipo de ACTUALIZACIÓN, el nuevo valor de la columna que se actualizará se obtiene mediante una instrucción SELECT en una subconsulta. Entonces, tomemos un ejemplo aquí de nuestra tabla de 'empleados'. Aquí está nuestro registro de destino que queremos actualizar.
En este caso, actualizaremos el número de departamento, es decir, la columna deptNum, utilizando las tablas de departamentos. Si miramos la tabla de departamentos, el deptNum = 5 corresponde a Berlín. Muevamos a este empleado a Charlotte en deptNum = 2.
Para lograr esta tarea, se utiliza la siguiente instrucción UPDATE:
Para verificar la salida de nuestra declaración UPDATE, ejecutemos el SELECCIONE declaración.
Como se muestra arriba, el valor de la columna deptNum se ha actualizado a '2'.
Instantánea de la tabla antes:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
1005 | Pedro | Lee | pl@gmail.com | 5 |
deptNum | Ciudad | País |
---|---|---|
1 | Nueva York | Estados Unidos |
2 | Charlotte | Estados Unidos |
3 | Chicago | Estados Unidos |
4 | Londres | Inglaterra |
5 | Berlina | Alemania |
6 | Mumbai | India |
Consulta:
|_+_|Instantánea de la tabla después:
empNum | nombre de pila | apellido | deptNum | |
---|---|---|---|---|
7 | Roma | Italia | NULO | |
1005 | Pedro | Lee | pl@gmail.com | 2 |
# 5) ACTUALIZACIÓN de MySQL en varias filas
A veces, podemos enfrentar un requisito en el que tenemos que actualizar una o más columnas para varias filas con diferentes valores.
Por ejemplo, queremos dar una cantidad particular de bonificación por departamento, es decir, todos los empleados de un departamento deben recibir una cantidad determinada de bonificación.
el mejor software de eliminación de virus para pc
La sintaxis general es la siguiente:
|_+_|Para explicar esto con un ejemplo, agreguemos una columna más a las tablas de departamentos. Agregaremos la columna 'bonificación' a la tabla de departamentos. La idea es asignar un porcentaje de bonificación a cada departamento y aumentar el salario de los empleados en ese porcentaje correspondiente a cada departamento.
Para lograr esto, ejecutaremos las siguientes sentencias ALTER para agregar una columna:
|_+_|La siguiente sería la estructura de la tabla que publica los cambios anteriores. Las nuevas columnas se agregarán con NULO como valor.
A continuación, escriba la consulta ACTUALIZAR que actualizará el porcentaje de bonificación para cada departamento.
Después de la ejecución de la declaración anterior, la siguiente es la instantánea con los valores actualizados para la columna Bonus.
Instantánea de la tabla antes:
deptNum | Ciudad | País | Prima |
---|---|---|---|
1 | Nueva York | Estados Unidos | NULO |
2 | Charlotte | Estados Unidos | NULO |
3 | Chicago | Estados Unidos | NULO |
4 | Londres | Inglaterra | NULO |
5 | Berlina | Alemania | NULO |
6 | Mumbai | India | NULO |
Consulta:
|_+_|Instantánea de la tabla después:
deptNum | Ciudad | País | Prima |
---|---|---|---|
7 | Roma | Italia | 18 |
1 | Nueva York | Estados Unidos | 3 |
2 | Charlotte | Estados Unidos | 5 |
3 | Chicago | Estados Unidos | 8 |
4 | Londres | Inglaterra | 10 |
5 | Berlina | Alemania | 13 |
6 | Mumbai | India | 15 |
# 6) ACTUALIZACIÓN de MySQL usando la palabra clave INNER JOIN
UNIRSE es una de las palabras clave más importantes de las sentencias SQL. Por lo general, es posible que lo haya usado en la instrucción SELECT.
Básicamente, hay cuatro tipos de declaraciones JOIN:
- UNIR INTERNAMENTE: Obtiene los registros que son comunes en ambas tablas.
- ÚNETE A LA IZQUIERDA: Obtiene todos los registros de la tabla del lado izquierdo de la palabra clave y los registros coincidentes de la tabla del lado derecho de la palabra clave.
- UNIRSE CORRECTAMENTE: Obtiene todos los registros de la tabla del lado derecho de la palabra clave y los registros coincidentes de la tabla del lado izquierdo de la palabra clave.
- UNIÓN EXTERIOR: Obtiene todos los registros de ambas tablas, con los correspondientes registros no coincidentes representados como NULL.
MySQL brinda una oportunidad única de usar JOIN incluso en declaraciones UPDATE para realizar actualizaciones de tablas cruzadas. Sin embargo, está limitado solo a INNER JOIN y LEFT JOIN.
La sintaxis genérica de la instrucción UPDATE que usa la palabra clave JOIN es la siguiente:
|_+_|- Aquí, la declaración UPDATE espera tres elementos de datos.
- Nombres de tabla, TAB1 y TAB2, en los que se realiza la unión.
- Tipo de JOIN que pretendemos realizar, INTERIOR o IZQUIERDA.
- Luego sigue el comando SET mediante el cual podemos actualizar los valores de columna en / o TAB1 y TAB2.
- Por último, una cláusula WHERE para actualizar solo aquellas filas que se ajusten a nuestros criterios.
Para explicar esto con un ejemplo, agreguemos una columna más a la tabla Empleados. Agregaremos la columna 'salario' a la tabla Empleados. La idea es aumentar el salario de los empleados en un valor porcentual de bonificación presente en la columna de bonificación de la tabla del departamento.
Para lograr esto, ejecutaremos las siguientes sentencias ALTER para agregar una columna:
|_+_|A continuación, completaremos los dos nuevos campos que hemos agregado. Después de completar los valores, el siguiente es el contenido de la tabla.
Tabla de empleados:
empNum | nombre de pila | apellido | deptNum | Salario | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 18000 |
1001 | Andrews | Jacobo | ja@gmail.com | 1 | 3000 |
1002 | Schwatz | Miguel | ms@gmail.com | 1 | 5000 |
1003 | Langley | Margaret | margaret.langley@gmail.com | 2 | 8000 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10000 |
1005 | Lee | Pedro | pl@gmail.com | 2 | 13000 |
1006 | Keith | Jenny | jk@gmail.com | 2 | 15000 |
1008 | Muralla exterior | Oliver | oliver.bailey@gmail.com | 3 | 21000 |
1009 | taza | Harry | hb@gmail.com | 5 | 24000 |
1010 | Armstrong | Jacob | jacob.armstrong@gmail.com | 4 | 27000 |
Ahora, usemos la palabra clave JOIN y actualicemos el salario de todos los empleados con un porcentaje de bonificación en la tabla de departamentos. Aquí, deptNum es la clave en la que se emparejarán las dos tablas.
F A continuación se muestra la instantánea de los salarios de los empleados a partir de ahora:
La instantánea de la tabla Departamentos es la siguiente:
A continuación se encuentra la consulta ACTUALIZAR que actualizará el salario de los empleados en función del porcentaje de bonificación en las tablas de los departamentos según la columna de clave deptNum.
Ahora, verifiquemos el salario de cada empleado después de la caminata.
Si lo compara con la instantánea anterior, puede comprender fácilmente el porcentaje de bonificación agregado al salario.
¡Todos los empleados deben estar animando!
Instantánea de la tabla antes:
empNum | nombre de pila | apellido | deptNum | Salario | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 18000 |
1001 | Andrews | Jacobo | ja@gmail.com | 1 | 3000 |
1002 | Schwatz | Miguel | ms@gmail.com | 1 | 5000 |
1003 | Langley | Margaret | margaret.langley@gmail.com | 2 | 8000 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10000 |
1005 | Lee | Pedro | pl@gmail.com | 2 | 13000 |
1006 | Keith | Jenny | jk@gmail.com | 2 | 15000 |
1008 | Muralla exterior | Oliver | oliver.bailey@gmail.com | 3 | 21000 |
1009 | taza | Harry | hb@gmail.com | 5 | 24000 |
1010 | Armstrong | Jacob | jacob.armstrong@gmail.com | 4 | 27000 |
deptNum | Ciudad | País | Prima |
---|---|---|---|
7 | Roma | Italia | 18 |
1 | Nueva York | Estados Unidos | 3 |
2 | Charlotte | Estados Unidos | 5 |
3 | Chicago | Estados Unidos | 8 |
4 | Londres | Inglaterra | 10 |
5 | Berlina | Alemania | 13 |
6 | Mumbai | India | 15 |
Consulta:
|_+_|Instantánea de la tabla después:
empNum | nombre de pila | apellido | deptNum | Salario | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 |
1001 | Andrews | Jacobo | ja@gmail.com | 1 | 3182.7 |
1002 | Schwatz | Miguel | ms@gmail.com | 1 | 5304.5 |
1003 | Langley | Margaret | margaret.langley@gmail.com | 2 | 8820 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 |
1005 | Lee | Pedro | pl@gmail.com | 2 | 14332.5 |
1006 | Keith | Jenny | jk@gmail.com | 2 | 16537.5 |
1008 | Muralla exterior | Oliver | oliver.bailey@gmail.com | 3 | 24494.4 |
1009 | taza | Harry | hb@gmail.com | 5 | 30645.6 |
1010 | Armstrong | Jacob | jacob.armstrong@gmail.com | 4 | 32670 |
# 7) ACTUALIZACIÓN de MySQL usando la palabra clave LEFT JOIN
Como se explicó en la sección anterior, hay dos tipos de JOIN que están permitidos en MySQL UPDATE. Ya hemos visto ACTUALIZAR usando INNER JOIN.
Comencemos con ACTUALIZAR usando LEFT JOIN.
Ejemplo:
Tenemos una nueva contratación que aún no se ha asignado a ningún departamento. Pero tenemos que dar a todos los nuevos empleados una bonificación del 1%. Ahora, como la nueva contratación no está asignada a ningún departamento, no podremos obtener ninguna información de porcentaje de bonificación de esa tabla. En tal caso, ACTUALIZAREMOS el salario de los nuevos empleados mediante LEFT JOIN.
Para lograr esto, agreguemos un nuevo empleado a la base de datos de empleados.
|_+_| A continuación se muestra el nuevo registro que hemos agregado:
Tabla de empleados:
empNum | nombre de pila | apellido | deptNum | Salario | |
---|---|---|---|---|---|
1007 | Schmitt | James | js@gmail.com | 4 | 21780 |
1001 | Andrews | Jacobo | ja@gmail.com | 1 | 3183 |
1002 | Schwatz | Miguel | ms@gmail.com | 1 | 5305 |
1003 | Langley | Margaret | margaret.langley@gmail.com | 2 | 8820 |
1004 | Harera | Sandra | sh@gmail.com | 1 | 10609 |
1005 | Lee | Pedro | pl@gmail.com | 2 | 14333 |
1006 | Keith | Jenny | jk@gmail.com | 2 | 16538 |
1008 | Muralla exterior | Oliver | oliver.bailey@gmail.com | 3 | 24494 |
1009 | taza | Harry | hb@gmail.com | 5 | 30646 |
1010 | Armstrong | Jacob | jacob.armstrong@gmail.com | 4 | 32670 |
1011 | Hanks | Tomás | th@gmail.com | NULO | 10000 |
A continuación, le daremos a Tom una bonificación del 1% además de su salario utilizando la declaración UPDATE con la cláusula LEFT JOIN:
A continuación se muestra el salario de TOM después de la caminata.
Si lo compara con la instantánea anterior, puede comprender fácilmente el% de bonificación agregado al salario.
Instantánea de la tabla antes:
empNum | nombre de pila | apellido | deptNum | Salario | |
---|---|---|---|---|---|
1011 | Tomás | Hanks | th@gmail.com | NULO | 10000 |
Consulta:
|_+_|Instantánea de la tabla después:
empNum | nombre de pila | apellido | deptNum | Salario | |
---|---|---|---|---|---|
1011 | Tomás | Hanks | th@gmail.com | NULO | 10100 |
Lectura recomendada = >> Uniones de MySQL
Preguntas y respuestas frecuentes
P # 1) ¿Cómo actualizo los atributos en MySQL?
Responder: Podemos actualizar atributo (s) usando la instrucción UPDATE de MySQL, con la instrucción comenzando con la palabra clave UPDATE seguida del nombre de la tabla. La siguiente es la cláusula SET seguida de un nombre de columna y una cláusula WHERE.
P # 2) ¿Cómo se actualizan varios registros en MySQL?
Responder: Como se muestra arriba, debajo del 'Actualizar varias filas' sección, podemos actualizar varias filas para una o más columnas con los mismos o diferentes valores usando la instrucción CASE.
P # 3) ¿Podemos usar JOIN en la consulta de actualización en MySQL?
Responder: Sí, MySQL permite usar JOIN en declaraciones UPDATE. Sin embargo, está restringido solo a INNER y LEFT JOIN.
P # 4) ¿De dónde descargar MySQL?
Responder: Puede descargar MySQL versión 8.0 desde aquí: MySQL .
P # 5) ¿Cuál es el significado de la cláusula WHERE en la declaración de actualización?
Responder: La cláusula WHERE restringe el número de filas que deben encajar en los criterios de la cláusula UPDATE.
Lectura sugerida = >> Cómo usar el Declaración If de MySQL
Conclusión
Por lo tanto, en este tutorial, hemos aprendido sobre 7 formas diferentes de ejecutar declaraciones UPDATE de MySQL.
- Actualizar una sola columna
- Actualizar varias columnas
- Actualizar usando REPLACE
- Actualizar usando SELECT
- Actualizar varias filas
- Actualizar usando INNER JOIN
- Actualizar usando LEFT JOIN
Podemos utilizar cualquiera de estos, según nuestros requisitos.
¡¡Feliz lectura!!
Lectura recomendada
- Diferencia entre SQL Vs MySQL Vs SQL Server (con ejemplos)
- Las 40 mejores preguntas y respuestas de las entrevistas de MySQL (preguntas de 2021)
- MongoDB Actualizar y eliminar documento con ejemplos
- C # usando instrucción y tutorial de método virtual de C # con ejemplos
- Tutorial sobre declaraciones condicionales de C #
- Tutorial de reflexión de Java con ejemplos
- Tutorial de Python DateTime con ejemplos
- Tutorial de Bugzilla: Tutorial práctico de la herramienta de gestión de defectos