12 - Operadores relacionales (is null) |
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- Recupere los registros que contengan valor "null" en el campo "laboratorio" (3 registros)
10- Recupere los registros que contengan valor "null" en el campo "precio", luego los que tengan el valor 0 en el mismo campo. Note que el resultado es distinto (2 y 1 registros respectivamente)
11- Recupere los registros cuyo laboratorio no contenga valor nulo (1 registro)
12- Recupere los registros cuyo precio sea distinto de 0, luego los que sean distintos de "null" (1 y 2 resgistros respectivamente)
Note que la salida de la primera sentencia no muestra los registros con valor 0 y tampoco los que tienen valor nulo; el resultado de la segunda sentencia muestra los registros con valor para el campo precio (incluso el valor 0).
13- Ingrese un registro con una cadena de 1 espacio para el laboratorio.
14- Recupere los registros cuyo laboratorio sea "null" y luego los que contengan 1 espacio (3 y 1 registros respectivamente)
Note que la salida de la primera sentencia no muestra los registros con valores para el campo "laboratorio" (un caracter espacio es un valor); el resultado de la segunda sentencia muestra los registros con el valor " " para el campo precio.
15- Recupere los registros cuyo laboratorio sea distinto de ' '(cadena de 1 espacio), luego los que sean distintos de "null" (1 y 2 registros respectivamente)
Note que la salida de la primera sentencia no muestra los registros con valor ' ' y tampoco los que tienen valor nulo; el resultado de la segunda sentencia muestra los registros con valor para el campo laboratorio (incluso el valor ' ')
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); select *from medicamentos where laboratorio is null; select *from medicamentos where precio is null; select *from medicamentos where precio=0; select *from medicamentos where laboratorio is not null; select *from medicamentos where precio<>0; select *from medicamentos where precio is not null; insert into medicamentos (codigo,nombre, laboratorio,precio,cantidad) values(5,'Geniol',' ',0.5,200); select *from medicamentos where laboratorio is null; select *from medicamentos where laboratorio=' '; select *from medicamentos where laboratorio<>' '; select *from medicamentos where laboratorio is not null;
Trabaje con la tabla que almacena los datos sobre películas, llamada "peliculas".
1- Elimine la tabla:
drop table peliculas;
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 los registros con valor nulo en el campo "actor" (2 registros)
8- Actualice los registros que tengan valor de duración desconocido (nulo) por "120" (1 registro actualizado)
9- Coloque 'Desconocido' en el campo "actor" en los registros que tengan valor nulo en dicho campo (2 registros)
10- Muestre todos los registros
11- Muestre todos los registros con valor nulo en el campo "actor" (ninguno)
12- Actualice la película en cuyo campo "duracion" hay 0 por "null" (1 registro)
13- Recupere todos los registros.
14- Borre todos los registros en los cuales haya un valor nulo en "duracion" (1 registro)
15- Verifique que se eliminó recuperando todos los registros.
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 where actor is null; update peliculas set duracion=120 where duracion is null; update peliculas set actor='Desconocido' where actor is null; select *from peliculas; select *from peliculas where actor is null; update peliculas set duracion=null where duracion=0; select *from peliculas; delete from peliculas where duracion is null; select *from peliculas;