15 - Tipos de datos alfanuméricos |
Una concesionaria de autos vende autos usados y almacena los datos de los autos en una tabla llamada "autos".
1- Elimine la tabla "autos"
2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo, estableciendo el campo "patente" como clave primaria:
create table autos( patente char(6), marca varchar2(20), modelo char(4), precio number(8,2), primary key (patente) );
Hemos definido el campo "patente" de tipo "char" y no "varchar2" porque la cadena de caracteres siempre tendrá la misma longitud (6 caracteres). Lo mismo sucede con el campo "modelo", en el cual almacenaremos el año, necesitamos 4 caracteres fijos.
3- Ingrese los siguientes registros:
insert into autos (patente,marca,modelo,precio) values('ABC123','Fiat 128','1970',15000); insert into autos (patente,marca,modelo,precio) values('BCD456','Renault 11','1990',40000); insert into autos (patente,marca,modelo,precio) values('CDE789','Peugeot 505','1990',80000); insert into autos (patente,marca,modelo,precio) values('DEF012','Renault Megane','1998',95000);
4- Ingrese un registro omitiendo las comillas en el valor de "modelo"
Oracle convierte el valor a cadena.
5- Vea cómo se almacenó.
6- Seleccione todos los autos modelo "1990"
7- Intente ingresar un registro con un valor de patente de 7 caracteres
8- Intente ingresar un registro con valor de patente repetida.
drop table autos; create table autos( patente char(6), marca varchar2(20), modelo char(4), precio number(8,2), primary key (patente) ); insert into autos (patente,marca,modelo,precio) values('ABC123','Fiat 128','1970',15000); insert into autos (patente,marca,modelo,precio) values('BCD456','Renault 11','1990',40000); insert into autos (patente,marca,modelo,precio) values('CDE789','Peugeot 505','1990',80000); insert into autos (patente,marca,modelo,precio) values('DEF012','Renault Megane','1998',95000); insert into autos (patente,marca,modelo,precio) values('HIJ678','Renault Clio',1990,70000); select *from autos; select *from autos where modelo='1990'; insert into autos (patente,marca,modelo,precio) values('FGH3457','Fiat 128','1975',20000); insert into autos (patente,marca,modelo,precio) values('HIJ678','Fiat 128','1975',20000);
Una empresa almacena los datos de sus clientes en una tabla llamada "clientes".
1- Elimine la tabla "clientes"
2- Créela eligiendo el tipo de dato más adecuado para cada campo:
create table clientes( documento char(8) not null, apellido varchar2(20), nombre varchar2(20), domicilio varchar2(30), telefono varchar2 (11) );
3- Analice la definición de los campos. Se utiliza char(8) para el documento porque siempre constará de 8 caracteres. Para el número telefónico se usar "varchar2" y no un tipo numérico porque si bien es un número, con él no se realizarán operaciones matemáticas.
4- Ingrese algunos registros:
insert into clientes (documento,apellido,nombre,domicilio,telefono) values('22333444','Perez','Juan','Sarmiento 980','4223344'); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('23444555','Perez','Ana','Colon 234',null); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('30444555','Garcia','Luciana','Caseros 634',null);
5- Intente ingresar un registro con más caracteres que los permitidos para el campo "telefono"
6- Intente ingresar un registro con más caracteres que los permitidos para el campo "documento"
7- Intente ingresar un registro omitiendo las comillas en el campo "apellido"
8- Seleccione todos los clientes de apellido "Perez" (2 registros)
drop table clientes; create table clientes( documento char(8) not null, apellido varchar2(20), nombre varchar2(20), domicilio varchar2(30), telefono varchar2 (11) ); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('22333444','Perez','Juan','Sarmiento 980','4223344'); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('23444555','Perez','Ana','Colon 234',null); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('30444555','Garcia','Luciana','Caseros 634',null); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('24555666','Juarez','Ana','Urquiza 444','035145566778'); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('256667778','Garcia','Luis','Avellaneda 1454','4558877'); insert into clientes (documento,apellido,nombre,domicilio,telefono) values('25666777',Garcia,'Luis','Avellaneda 1454','4558877'); select *from clientes where apellido='Perez';