ACTIVIDAD 5 - Delete - Update

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

 

Actividad 5: 
Borrar registros (delete) 
Para eliminar los registros de una tabla usamos el comando "delete":

delete from usuarios;

Si no queremos eliminar todos los registros, sino solamente algunos, debemos


indicar cuál o cuáles, para ello utilizamos el comando "delete" junto con la clausula
"where" con la cual establecemos la condición que deben cumplir los registros a
borrar.

Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es


"Marcelo":

​delete from usuarios


where nombre='Marcelo';

Si solicitamos el borrado de un registro que no existe, es decir, ningún registro


cumple con la condición especificada, ningún registro será eliminado.

Tenga en cuenta que si no colocamos una condición, se eliminan todos los


registros de la tabla nombrada.

Resolver Problema

Trabajar con la tabla "usuarios". La creamos con la siguiente estructura:

create table usuarios(


nombre varchar(30),
clave varchar(10)
);

Y agregamos los siguientes registros a la tabla:

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');
a) Seleccionar todos los registros
b) Eliminar el registro cuyo clave de usuario es "chapita", y mostrar el
contenido de la tabla.
c) Intente eliminarlo nuevamente (mostrar resultado) y mostrar contenido de la
tabla
d) Eliminamos todos los registros cuya clave es 'Boca', y mostrar contenido de
la tabla
e) Elimine todos los registros, y mostrar contenido de la tabla

​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 la 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';

Problema a resolver: 

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


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

b) Ingrese los siguientes registros:


'El aleph','Borges','Emece',25.00
'Martin Fierro','Jose Hernandez','Planeta',35.50
'Aprenda PHP','Mario Molina','Emece',45.50
'Cervantes y el quijote','Borges','Emece',25
'Matematica estas ahi','Paenza','Siglo XXI',15

c) Muestre todos los registros (5 registros):

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

e) Nuevamente, modifique los registros cuyo autor sea igual a "Paenza", por "Adrian
Paenza" (ningún registro afectado porque ninguno cumple la condición)

f) Actualice el precio del libro de "Mario Molina" a 27 pesos (1 registro afectado):

g) Actualice el valor del campo "editorial" por "Emece S.A.", para todos los registros
cuya editorial sea igual a "Emece" (3 registros afectados)

h) Luego de cada actualización ejecute un select que muestre todos los registros de la
tabla.

Valores null (is null) 


"null" significa "dato desconocido" o "valor inexistente". No es lo mismo que
un valor "0", una cadena vacía o una cadena literal "null".
A veces, puede desconocerse o no existir el dato correspondiente a algún
campo de un registro. En estos casos decimos que el campo puede
contener valores nulos.
Por ejemplo, en nuestra tabla de libros, podemos tener valores nulos en el
campo "precio" porque es posible que para algunos libros no le hayamos
establecido el precio para la venta.
En contraposición, tenemos campos que no pueden estar vacíos jamás.
Veamos un ejemplo. Tenemos nuestra tabla "libros". El campo "titulo" no
debería estar vacío nunca, igualmente el campo "autor". Para ello, al crear
la tabla, debemos especificar que dichos campos no admitan valores nulos:
create table libros(
titulo varchar(30) not null,
autor varchar(20) not null,
editorial varchar(15) null,
precio float
);
Para especificar que un campo no admita valores nulos, debemos colocar
"not null" luego de la definición del campo.
En el ejemplo anterior, los campos "editorial" y "precio" si admiten valores
nulos.
Cuando colocamos "null" estamos diciendo que admite valores nulos (caso
del campo "editorial"); por defecto, es decir, si no lo aclaramos, los campos
permiten valores nulos (caso del campo "precio").
Si ingresamos los datos de un libro, para el cual aún no hemos definido el
precio podemos colocar "null" para mostrar que no tiene precio:
insert into libros (titulo,autor,editorial,precio)
values('El aleph','Borges','Emece',null);
Note que el valor "null" no es una cadena de caracteres, no se coloca entre
comillas.
Entonces, si un campo acepta valores nulos, podemos ingresar "null"
cuando no conocemos el valor.
También podemos colocar "null" en el campo "editorial" si desconocemos el
nombre de la editorial a la cual pertenece el libro que vamos a ingresar:
insert into libros (titulo,autor,editorial,precio)
values('Alicia en el pais','Lewis Carroll',null,25);
Si intentamos ingresar el valor "null" en campos que no admiten valores
nulos (como "titulo" o "autor"), PostgreSQL no lo permite, muestra un
mensaje y la inserción no se realiza; por ejemplo:
insert into libros (titulo,autor,editorial,precio)
values(null,'Borges','Siglo XXI',25);
Para ver cuáles campos admiten valores nulos y cuáles no, podemos
consultar el catálogo. Nos muestra mucha información, en la columna
"is_nullable" vemos que muestra "NO" en los campos que no permiten
valores nulos y "YES" en los campos que si los permiten.
select
table_name,column_name,udt_name,character_maximum_length,
is_nullable
from information_schema.columns
where table_name = 'libros';
Para recuperar los registros que contengan el valor "null" en algún campo,
no podemos utilizar los operadores relacionales vistos anteriormente: =
(igual) y <> (distinto); debemos utilizar los operadores "is null" (es igual a
null) y "is not null" (no es null):
select * from libros
where precio is null;
La sentencia anterior tendrá una salida diferente a la siguiente:
select * from libros
where precio=0;
Con la primera sentencia veremos los libros cuyo precio es igual a "null"
(desconocido); con la segunda, los libros cuyo precio es 0.
Igualmente para campos de tipo cadena, las siguientes sentencias "select"
no retornan los mismos registros:
select * from libros where editorial is null;
select * from libros where editorial='';
Con la primera sentencia veremos los libros cuya editorial es igual a "null",
con la segunda, los libros cuya editorial guarda una cadena vacía.
Entonces, para que un campo no permita valores nulos debemos
especificarlo luego de definir el campo, agregando "not null". Por defecto,
los campos permiten valores nulos, pero podemos especificarlo igualmente
agregando "null".

Problema a resolver: 

Trabaje con la tabla que almacena los datos sobre películas, llamada "peliculas".

1- Créela con la siguiente estructura:


create table peliculas(
codigo int not null,
titulo varchar(40) not null,
actor varchar(20),
duracion int
);

2- Visualice la estructura de la tabla


note que el campo "codigo" y "titulo", en la columna "ins_nullable" muestra "NO" y los
otros campos "YES".

3- Ingrese los siguientes registros:


insert into peliculas (codigo,titulo,actor,duracion)
values(1,'Mision imposible','Tom Cruise',120);
insert into peliculas (codigo,titulo,actor,duracion)
values(2,'Harry Potter y la piedra filosofal',null,180);
insert into peliculas (codigo,titulo,actor,duracion)
values(3,'Harry Potter y la camara secreta','Daniel R.',null);
insert into peliculas (codigo,titulo,actor,duracion)
values(0,'Mision imposible 2','',150);
insert into peliculas (codigo,titulo,actor,duracion)
values(4,'','L. Di Caprio',220);
insert into peliculas (codigo,titulo,actor,duracion)
values(5,'Mujer bonita','R. Gere-J. Roberts',0);

4- Recupere todos los registros para ver cómo PostgreSQL los almacenó:
select * from peliculas;

5- Intente ingresar un registro con valor nulo para campos que no lo admiten (aparece
un mensaje de
error)

6- Muestre los registros con valor nulo en el campo "actor" y luego los que guardan
una cadena vacía
(note que la salida es distinta) (1 registro)

7- Modifique los registros que tengan valor de duración desconocido (nulo) por "120"
(1 registro
actualizado)

8- Coloque 'Desconocido' en el campo "actor" en los registros que tengan una cadena
vacía en dicho
campo (1 registro afectado)

9- Muestre todos los registros. Note que el cambio anterior no afectó a los registros
con valor
nulo en el campo "actor".

10- Elimine los registros cuyo título sea una cadena vacía (1 registro)

También podría gustarte