11 - Valores nulos (null)


Primer problema:

Una farmacia guarda información referente a sus medicamentos en una tabla llamada "medicamentos".

1- Elimine la tabla y créela con la siguiente estructura:

 drop table medicamentos;
 create table medicamentos(
  codigo number(5) not null,
  nombre varchar2(20) not null,
  laboratorio varchar2(20),
  precio number(5,2),
  cantidad number(3,0) not null
 );

3- Visualice la estructura de la tabla "medicamentos"
note que los campos "codigo", "nombre" y "cantidad", en la columna "Null" muestra "NOT NULL".

4- Ingrese algunos registros con valores "null" para los campos que lo admitan:

 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(1,'Sertal gotas',null,null,100); 
 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(2,'Sertal compuesto',null,8.90,150);
 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(3,'Buscapina','Roche',null,200);

5- Vea todos los registros.

6- Ingrese un registro con valor "0" para el precio y cadena vacía para el laboratorio.

7- Intente ingresar un registro con cadena vacía para el nombre (mensaje de error)

8- Intente ingresar un registro con valor nulo para un campo que no lo admite (aparece un mensaje de error)

9- Ingrese un registro con una cadena de 1 espacio para el laboratorio.

10- Recupere los registros cuyo laboratorio contenga 1 espacio (1 registro)

11- Recupere los registros cuyo laboratorio sea distinto de ' '(cadena de 1 espacio) (1 registro)

Ver solución

 drop table medicamentos;
 create table medicamentos(
  codigo number(5) not null,
  nombre varchar2(20) not null,
  laboratorio varchar2(20),
  precio number(5,2),
  cantidad number(3,0) not null
 );

 describe medicamentos;

 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(1,'Sertal gotas',null,null,100); 
 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(2,'Sertal compuesto',null,8.90,150);
 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(3,'Buscapina','Roche',null,200);

 select *from medicamentos;

 insert into medicamentos (codigo,nombre, laboratorio,precio,cantidad)
  values(4,'Bayaspirina','',0,150);

 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(0,'','Bayer',15.60,200);

 insert into medicamentos (codigo,nombre,laboratorio,precio,cantidad)
  values(null,'Amoxidal jarabe','Bayer',25,120);

 insert into medicamentos (codigo,nombre, laboratorio,precio,cantidad)
  values(5,'Geniol',' ',0.5,200);

 select *from medicamentos where laboratorio=' ';

 select *from medicamentos where laboratorio<>' ';

 

Segundo problema:

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

1- Elimine la tabla:

2- Créela con la siguiente estructura:

 create table peliculas(
  codigo number(4) not null,
  titulo varchar2(40) not null,
  actor varchar2(20),
  duracion number(3)
 );

3- Visualice la estructura de la tabla.
note que el campo "codigo" y "titulo", en la columna "Null" muestran "NOT NULL".

4- 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,'Titanic','L. Di Caprio',220);
 insert into peliculas (codigo,titulo,actor,duracion)
  values(5,'Mujer bonita','R. Gere-J. Roberts',0);

5- Recupere todos los registros para ver cómo Oracle los almacenó.

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

7- Muestre todos los registros.

8- Actualice la película en cuyo campo "duracion" hay 0 por "null" (1 registro)

9- Recupere todos los registros.


Ver solución
  drop table peliculas;

 create table peliculas(
  codigo number(4) not null,
  titulo varchar2(40) not null,
  actor varchar2(20),
  duracion number(3)
 );

 describe peliculas;

 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,'Titanic','L. Di Caprio',220);
 insert into peliculas (codigo,titulo,actor,duracion)
  values(5,'Mujer bonita','R. Gere-J. Roberts',0);

 select *from peliculas;

 insert into peliculas (codigo,titulo,actor,duracion)
  values(null,'Mujer bonita','R. Gere-J. Roberts',190);

 select *from peliculas;

 update peliculas set duracion=null where duracion=0;

 select *from peliculas;

Retornar