Listado completo de tutoriales

10 - Modificación de registros de una tabla (update)


Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar).

Por ejemplo, en nuestra tabla "usuarios", queremos cambiar los valores de todas las claves, por "RealMadrid":

 update usuarios set clave='RealMadrid';

Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su nuevo valor.

El cambio afectará a todos los registros.

Podemos modificar algunos registros, para ello debemos establecer condiciones de selección con "where".

Por ejemplo, queremos cambiar el valor correspondiente a la clave de nuestro usuario llamado 'MarioPerez', queremos como nueva clave 'Boca', necesitamos una condición "where" que afecte solamente a este registro:

 update usuarios set clave='Boca'
  where nombre='MarioPerez';

Si no encuentra registros que cumplan con la condición del "where", ningún registro es afectado.

Las condiciones no son obligatorias, pero si omitimos la cláusula "where", la actualización afectará a todos los registros.

También se puede actualizar varios campos en una sola instrucción:

 update usuarios set nombre='MarceloDuarte', clave='Marce'
  where nombre='Marcelo';

Para ello colocamos "update", el nombre de la tabla, "set" junto al nombre del campo y el nuevo valor y separado por coma, el otro nombre del campo con su nuevo valor.

Servidor de MySQL instalado en forma local.

Igual al concepto anterior cuando utilizamos el comando 'update' si la varible 'SQL_SAFE_UPDATES' se encuentra con un 1 (activa) luego solo se pueden ejecutar actualizaciones de una única fila disponiendo en el where la clave primaria (tema que no hemos visto)
Por el momento es aconsejable cambiar 'SQL_SAFE_UPDATES' al valor cero si no lo hizo en el concepto anterior.

Luego de cambiar 'SQL_SAFE_UPDATES' a cero puede ejecutar este conjunto de sentencias SQL en el "Workbench":

drop table if exists  usuarios;

create table usuarios (
  nombre varchar(30),
  clave varchar(10)
);

insert into usuarios (nombre, clave) values ('Leonardo','payaso');
insert into usuarios (nombre, clave) values ('MarioPerez','Marito'); 
insert into usuarios (nombre, clave) values ('Marcelo','River');
insert into usuarios (nombre, clave) values ('Gustavo','River');

select * from usuarios;

update usuarios set clave='RealMadrid';

select nombre,clave from usuarios;

update usuarios set nombre='GustavoGarcia'
  where nombre='Gustavo';

update usuarios set nombre='MarceloDuarte', clave='Marce'
  where nombre='Marcelo';

select nombre,clave from usuarios;

MySQL SQL_SAFE_UPDATES update

Retornar