sábado, 7 de abril de 2012

10 - Modificación de registros de una tabla

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.


Problema Resuelto:

Trabajamos con la tabla "usuarios" que guarda el nombre de usuario y su clave.

Eliminamos la tabla, si existe:

drop table if exists  usuarios;
 
Creamos la tabla:

create table usuarios (
  nombre varchar(30),
  clave varchar(10)
 );
 
Ingresamos algunos registros:

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');
 
Visualizamos todos los registros:

select * from usuarios;
 
Para actualizar los valores de todas las claves, por 'RealMadrid' tipeamos:

update usuarios set clave='RealMadrid';
 
Visualizamos todos los registros para verificar la actualización:

select * from usuarios;
 
Cambiamos el valor correspondiente a la clave de nuestro usuario llamado 'MarioPerez', por 'Boca':

update usuarios set clave='Boca'
 where nombre='MarioPerez';
 
Verificamos el cambio:

select nombre,clave from usuarios;
 
Cambiamos el valor correspondiente al nombre de usuario 'Gustavo' por 'GustavoGarcia':


update usuarios set nombre='GustavoGarcia'
 where nombre='Gustavo';
 
Podemos actualizar varios campos en una sola instrucción:

update usuarios set nombre='MarceloDuarte', clave='Marce'
 where nombre='Marcelo';
 
 
 
Problema Propuesto:
 
Trabaje con la tabla "agenda" que almacena los datos de sus amigos.

1- Elimine la tabla si existe.

2- Cree la tabla:
 
create table agenda(
  apellido varchar(30),
  nombre varchar(20),
  domicilio varchar(30),
  telefono varchar(11)
 );

3- Visualice la estructura de la tabla "agenda".

4- Ingrese los siguientes registros:
 
Mores,Alberto,Colon 123,4234567,
 Torres,Juan,Avellaneda 135,4458787,
 Lopez,Mariana,Urquiza 333,4545454,
 Lopez,Jose,Urquiza 333,4545454,
 Peralta,Susana,Gral. Paz 1234,4123456.

5- Modifique el registro cuyo nombre sea "Juan" por "Juan Jose":
 
6- Actualice los registros cuyo número telefónico sea igual a '4545454' 
por '4445566':
 
7- Actualice los registros que tengan en el campo "nombre" el valor "Juan" 
por "Juan Jose" ningún registro afectado porque ninguno cumple con la condición 
del "where"):
 

Otros problemas:

A) Trabaje con la tabla "libros" de una librería.

1- Elimine la tabla.

2- Créela con los siguientes campos: titulo (cadena de 20 caracteres de longitud), 
autor (cadena de 30), editorial (cadena de 15) y precio (float).

3- Visualice la estructura de la tabla "libros".

4- Ingrese los siguientes registros:
 El aleph,Borges,Planeta,15.00;
 Martin Fierro,Jose Hernandez,Emece,25.50;
 Aprenda PHP,Mario Molina,Emece,25.00;
 Cervantes y el quijote,Borges,Paidos,25;
 Matematica estas ahi, Paenza, Paidos,40.80;

5- Muestre todos los registros.

6- Modifique los registros cuyo autor sea igual  a "Paenza", por "Adrian Paenza". 
(1 registro afectado)

7- Nuevamente, modifique los registros cuyo autor sea igual  a "Paenza",
   por "Adrian Paenza". (ningún registro afectado).

8- Actualice el precio del libro de "Mario Molina" a 27 pesos:

9- Actualice el valor del campo "editorial" por "Emece S.A.", para todos 
los registros cuya editorial sea igual a "Emece".


B) Un comercio que vende artículos de computación registra los datos de sus 
artículos en una tabla con ese nombre.

1- Elimine "articulos", si existe.

2- Cree la tabla, con la siguiente estructura:
 
create table articulos(
  codigo integer,
  nombre varchar(20),
  descripcion varchar(30),
  precio float,
  cantidad integer
 );

3- Vea la estructura de la tabla (describe).

4- Ingrese algunos registros:
  (codigo, nombre, descripcion, precio,cantidad)
  1,impresora,Epson Stylus C45,400.80,20
  2,impresora,Epson Stylus C85,500,30
  3,monitor,Samsung 14,800,10
  4,teclado,ingles Biswal,100,50
  5,teclado,español Biswal,90,50

5- Actualice el precio a "400" del artículo cuya descripción sea "Epson Stylus C45":
 
6- Actualice la cantidad a 100 de todas los teclados:
 
7- Actualice la cantidad a 50 y el precio a 550 del artículo con código 2:
 
8- Actualice la cantidad a 100 de todos los registros con cantidad=1000 
   (no hay registros que cumplan la condición, ningún registro afectado):
 

2 comentarios: