18 - Valores por defecto (default) |
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óndrop 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';
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.
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/2007','18/12/2007'); insert into prestamos (titulo,documento,fechaprestamo) values ('Alicia en el pais de las maravillas','23456789','16/12/2007'); select *from prestamos; insert into prestamos values('Manual de historia','32555666','25/10/2007',default,default); select *from prestamos; insert into prestamos values('Manual de aritmetica',default,'10/10/2007','12/10/2007','s');