sql >> Base de Datos >  >> RDS >> Mysql

Actualizar consulta para actualizar filas en MySQL

Este tutorial es parte de la serie Aprenda consultas SQL básicas usando MySQL. En este tutorial, analizaremos las consultas SQL para actualizar las filas o datos de una tabla en MySQL.

Consulta de actualización

El comando ACTUALIZAR se puede usar para modificar o actualizar filas de una tabla usando la palabra clave SET. En caso de que haya iniciado sesión de forma remota en la base de datos, también necesitará el privilegio de ACTUALIZAR para la tabla a fin de leer las filas de una tabla.

# UPDATE - Syntax
UPDATE `table_name` SET `column_1` = <value>, `column_2` = <value> ... [WHERE <single or multiple filter conditions>];

Explicación de consulta

El comando MySQL ACTUALIZAR se puede usar para modificar filas o datos del nombre de la tabla dado donde el nombre de la columna, el valor de la fila y el nombre de la tabla son obligatorios. El SET Se requiere una palabra clave para establecer el nuevo valor de columna.

Tenemos que especificar al menos una columna y su nuevo valor al usar la consulta ACTUALIZAR. El valor debe estar entre comillas simples en caso de que sea un valor de cadena.

También necesitamos especificar las condiciones que se considerarán al actualizar las filas. Se requiere el uso de la cláusula WHERE con el comando UPDATE donde necesitamos actualizar selectivamente las filas que es el escenario ideal. Podemos omitir el uso de DONDE mientras usamos el comando ACTUALIZAR, pero generará problemas de rendimiento en caso de que los datos de la tabla sean grandes.

Ejemplos

Esta sección proporciona ejemplos para actualizar filas de la tabla usando el comando UPDATE. Utilice la consulta que se menciona a continuación para crear la tabla de usuarios que tenga la identificación, el nombre, el apellido y las columnas activas para almacenar los datos del usuario.

# Create the User Table
CREATE TABLE `enterprise`.`user` (
`user_id` BIGINT NOT NULL,
`first_name` VARCHAR(45) ,
`last_name` VARCHAR(45),
`active` TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`user_id`));

La consulta mencionada a continuación se puede utilizar para insertar datos en la tabla de usuario.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
( 1, 'John', 'Smith', 1 ),
( 2, 'Rick', 'Jones', 1 ),
( 3, 'Catherine', 'Ponting', 0 ),
( 4, 'Harsh', 'Upadhyay', 1 ),
( 5, 'Tajwinder', 'Singh', 0 );

La consulta mencionada anteriormente insertará 5 filas en la tabla con la identificación, el nombre, el apellido y las columnas activas para representar a 5 usuarios diferentes.

Ahora actualizaremos los datos insertados por nosotros en la tabla de usuarios. Se puede hacer usando el comando ACTUALIZAR como se muestra a continuación.

# UPDATE - Activate all the inactive users - without key column
UPDATE `user` SET `active` = 1 WHERE `active` = 0;

# Notes - Workbench - You might need to disable safe updates in case the primary key is not used in WHERE clause
SET SQL_SAFE_UPDATES = 0;
UPDATE `user` SET `active` = 1 WHERE `active` = 0;
SET SQL_SAFE_UPDATES = 0;

# Result
1 John Smith 1
2 Rick Jones 1
3 Catherine Ponting 1
4 Harsh Upadhyay 1
5 Tajwinder Singh 1


# UPDATE - Deactivate selective users - with key column
UPDATE `user` SET `active` = 0 WHERE `user_id` = 1;
UPDATE `user` SET `active` = 0 WHERE `user_id` IN( 3, 5 );

# Result
1 John Smith 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0

Las consultas mencionadas anteriormente actualizan la tabla de usuarios utilizando la cláusula WHERE. Las filas de la tabla se actualizarán en caso de que la fila cumpla con las condiciones dadas.

También podemos actualizar varios valores de columna como se muestra a continuación.

# UPDATE - Modify first name and last name of first user
UPDATE `user` SET `first_name` = 'Roy', `last_name` = 'Jordan' WHERE `user_id` = 1;

# Result
1 Roy Jordan 0
2 Rick Jones 1
3 Catherine Ponting 0
4 Harsh Upadhyay 1
5 Tajwinder Singh 0

Así es como podemos modificar los datos almacenados en las tablas de MySQL.