18 - Valores por defecto (default)


Primer problema:

Un comercio que tiene un stand en una feria registra en una tabla llamada "visitantes" algunos datos de las personas que visitan o compran en su stand para luego enviarle publicidad de sus productos.

1- Elimine la tabla "visitantes"

2- Cree la tabla con la siguiente estructura:

 create table visitantes(
  nombre varchar2(30),
  edad number(2),
  sexo char(1) default 'f',
  domicilio varchar2(30),
  ciudad varchar2(20) default 'Cordoba',
  telefono varchar(11),
  mail varchar(30) default 'no tiene',
  montocompra number (6,2)
 );

4- Analice la información que retorna la siguiente consulta:

 select column_name,nullable,data_default
  from user_tab_columns where TABLE_NAME = 'VISITANTES';

Todos los campos admiten valores nulos; hay 3 campos con valores predeterminados.

5- Ingrese algunos registros sin especificar valores para algunos campos para ver cómo opera la cláusula "default":

 insert into visitantes (domicilio,ciudad,telefono,mail,montocompra)
  values ('Colon 123','Cordoba','4334455','juanlopez@hotmail.com',59.80);
 insert into visitantes (nombre,edad,sexo,telefono,mail,montocompra)
  values ('Marcos Torres',29,'m','4112233','marcostorres@hotmail.com',60);
 insert into visitantes (nombre,edad,sexo,domicilio,ciudad)
  values ('Susana Molina',43,'f','Bulnes 345','Carlos Paz');

6- Recupere todos los registros.

Los campos de aquellos registros para los cuales no se ingresó valor almacenaron el valor por defecto ("null" o el especificado con "default").

7- Use la palabra "default" para ingresar valores en un "insert"

8- Recupere el registro anteriormente ingresado.

Ver solución

  drop table visitantes;

 create table visitantes(
  nombre varchar2(30),
  edad number(2),
  sexo char(1) default 'f',
  domicilio varchar2(30),
  ciudad varchar2(20) default 'Cordoba',
  telefono varchar(11),
  mail varchar(30) default 'no tiene',
  montocompra number (6,2)
 );

 select column_name,nullable,data_default
  from user_tab_columns where TABLE_NAME = 'VISITANTES';

 insert into visitantes (domicilio,ciudad,telefono,mail,montocompra)
  values ('Colon 123','Cordoba','4334455','juanlopez@hotmail.com',59.80);
 insert into visitantes (nombre,edad,sexo,telefono,mail,montocompra)
  values ('Marcos Torres',29,'m','4112233','marcostorres@hotmail.com',60);
 insert into visitantes (nombre,edad,sexo,domicilio,ciudad)
  values ('Susana Molina',43,'f','Bulnes 345','Carlos Paz');

 select *from visitantes;

 insert into visitantes
  values ('Marcela Morales',default,default,'Avellaneda 292',default,'4255232',default,default);

 select *from visitantes where nombre='Marcela Morales';

 

Segundo problema:

Una pequeña biblioteca de barrio registra los préstamos de sus libros en una tabla llamada "prestamos". En ella almacena la siguiente información: título del libro, documento de identidad del socio a quien se le presta el libro, fecha de préstamo, fecha en que tiene que devolver el libro y si el libro ha sido o no devuelto.

1- Elimine la tabla "prestamos"

2- Cree la tabla:

 create table prestamos(
  titulo varchar2(40) not null,
  documento char(8) not null,
  fechaprestamo date not null,
  fechadevolucion date,
  devuelto char(1) default 'n'
 );

3- Consulte "user_tab_columns" y analice la información.
Hay 3 campos que no admiten valores nulos y 1 solo campo con valor por defecto.

4- Ingrese algunos registros omitiendo el valor para los campos que lo admiten.

5- Seleccione todos los registros.

6- Ingrese un registro colocando "default" en los campos que lo admiten y vea cómo se almacenó.

7- Intente ingresar un registro colocando "default" como valor para un campo que no admita valores nulos y no tenga definido un valor por defecto.


Ver solución
  drop table prestamos;

 create table prestamos(
  titulo varchar2(40) not null,
  documento char(8) not null,
  fechaprestamo date not null,
  fechadevolucion date,
  devuelto char(1) default 'n'
 );

 select column_name,nullable,data_default
  from user_tab_columns where TABLE_NAME = 'PRESTAMOS';

 insert into prestamos (titulo,documento,fechaprestamo,fechadevolucion)
  values ('Manual de 1 grado','23456789','15/12/2017','18/12/2017');
 insert into prestamos (titulo,documento,fechaprestamo)
  values ('Alicia en el pais de las maravillas','23456789','16/12/2017');

 select *from prestamos;

 insert into prestamos
  values('Manual de historia','32555666','25/10/2017',default,default);

 select *from prestamos;

 insert into prestamos values('Manual de aritmetica',default,'10/10/2017','12/10/2017','s');

Retornar