Listado completo de tutoriales
9 - Actualizar registros (update) |
Decimos que actualizamos un registro cuando modificamos alguno de sus valores.
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 "Federicolopez", queremos como nueva clave "Boca", necesitamos una condición "where" que afecte solamente a este registro:
update usuarios set clave='Boca' where nombre='Federicolopez';
Si PostgreSQL no encuentra registros que cumplan con la condición del "where", no se modifica ninguno.
Las condiciones no son obligatorias, pero si omitimos la cláusula "where", la actualización afectará a todos los registros.
También podemos 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.
drop table if exists usuarios;
create table usuarios(
nombre varchar(20),
clave varchar(10)
);
insert into usuarios (nombre,clave)
values ('Marcelo','River');
insert into usuarios (nombre,clave)
values ('Susana','chapita');
insert into usuarios (nombre,clave)
values ('Carlosfuentes','Boca');
insert into usuarios (nombre,clave)
values ('Federicolopez','Boca');
-- Cambiaremos los valores de todas las claves, por la cadena "RealMadrid":
update usuarios set clave='RealMadrid';
-- El cambio afectó a todos los registros, veámoslo:
select * from usuarios;
-- Necesitamos cambiar el valor de la clave del usuario llamado "Federicolopez" por "Boca":
update usuarios set clave='Boca'
where nombre='Federicolopez';
-- Verifiquemos que la actualización se realizó:
select * from usuarios;
-- Vimos que si PostgreSQL no encuentra registros que cumplan con la condición no se
-- modifican registros:
update usuarios set clave='payaso'
where nombre='JuanaJuarez';
select * from usuarios;
-- Para actualizar varios campos en una sola instrucción empleamos:
update usuarios set nombre='Marceloduarte', clave='Marce'
where nombre='Marcelo';
-- Si vemos la tabla:
select * from usuarios;
Seleccionemos con el mouse todas las instrucciones hasta el primer comando 'select' y luego ejecutemos dicho bloque. Debe aparecer una salida similar a:

Ejecutemos luego los otros update y veamos cada uno de los resultados.