15 - Tipos de datos alfanuméricos


Primer problema:

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.

Ver solución

  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);

 

Segundo problema:

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)


Ver solución
  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';

Retornar