16 - Tipos de datos numéricos


Primer problema:

Un banco tiene registrados las cuentas corrientes de sus clientes en una tabla llamada "cuentas".
La tabla contiene estos datos:

	Número de Cuenta        Documento       Nombre          Saldo
	______________________________________________________________
	1234                         25666777        Pedro Perez     500000.60
	2234                         27888999        Juan Lopez      -250000
	3344                         27888999        Juan Lopez      4000.50
	3346                         32111222        Susana Molina   1000

1- Elimine la tabla "cuentas":

  drop table cuentas;

2- Cree la tabla eligiendo el tipo de dato adecuado para almacenar los datos descriptos arriba:

- Número de cuenta: entero hasta 9999, no nulo, no puede haber valores repetidos, clave primaria;

- Documento del propietario de la cuenta: cadena de caracteres de 8 de longitud (siempre 8), no nulo;

- Nombre del propietario de la cuenta: cadena de caracteres de 30 de longitud,

- Saldo de la cuenta: valores que no superan 999999.99

 create table cuentas(
  numero number(4) not null,
  documento char(8),
  nombre varchar2(30),
  saldo number(8,2),
  primary key (numero)
 );

3- Ingrese los siguientes registros:

 insert into cuentas(numero,documento,nombre,saldo)
  values('1234','25666777','Pedro Perez',500000.60);
 insert into cuentas(numero,documento,nombre,saldo)
  values('2234','27888999','Juan Lopez',-250000);
 insert into cuentas(numero,documento,nombre,saldo)
  values('3344','27888999','Juan Lopez',4000.50);
 insert into cuentas(numero,documento,nombre,saldo)
  values('3346','32111222','Susana Molina',1000);

Note que hay dos cuentas, con distinto número de cuenta, de la misma persona.

4- Seleccione todos los registros cuyo saldo sea mayor a "4000" (2 registros)

5- Muestre el número de cuenta y saldo de todas las cuentas cuyo propietario sea "Juan Lopez" (2 registros)

6- Muestre las cuentas con saldo negativo (1 registro)

7- Muestre todas las cuentas cuyo número es igual o mayor a "3000" (2 registros)

Ver solución

  drop table cuentas;

 create table cuentas(
  numero number(4) not null,
  documento char(8),
  nombre varchar2(30),
  saldo number(8,2),
  primary key (numero)
 );

 insert into cuentas(numero,documento,nombre,saldo)
  values('1234','25666777','Pedro Perez',500000.60);
 insert into cuentas(numero,documento,nombre,saldo)
  values('2234','27888999','Juan Lopez',-250000);
 insert into cuentas(numero,documento,nombre,saldo)
  values('3344','27888999','Juan Lopez',4000.50);
 insert into cuentas(numero,documento,nombre,saldo)
  values('3346','32111222','Susana Molina',1000);

 select *from cuentas
  where saldo<4000;

 select numero,saldo from cuentas
  where nombre='Juan Lopez';

 select *from cuentas
  where saldo<0;

 select *from cuentas
  where numero>=3000;

 

Segundo problema:

Una empresa almacena los datos de sus empleados en una tabla "empleados" que guarda los siguientes datos: nombre, documento, sexo, domicilio, sueldobasico.

1- Elimine la tabla:

  drop table empleados;

2- Cree la tabla eligiendo el tipo de dato adecuado para cada campo:

 create table empleados(
  nombre varchar2(30),
  documento char(8),
  sexo char(1),
  domicilio varchar2(30),
  sueldobasico number(7,2),--máximo estimado 99999.99
  cantidadhijos number(2)--no superará los 99
 );

3- Ingrese algunos registros:

 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Juan Perez','22333444','m','Sarmiento 123',500,2);
 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Ana Acosta','24555666','f','Colon 134',850,0);
 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Bartolome Barrios','27888999','m','Urquiza 479',10000.80,4);

4- Ingrese un valor de "sueldobasico" con más decimales que los definidos (redondea los decimales al valor más cercano 800.89)

5- Intente ingresar un sueldo que supere los 7 dígitos (no lo permite)

6- Muestre todos los empleados cuyo sueldo no supere los 900 pesos

7- Seleccione los nombres de los empleados que tengan hijos (3 registros)


Ver solución
  drop table empleados;

 create table empleados(
  nombre varchar2(30),
  documento char(8),
  sexo char(1),
  domicilio varchar2(30),
  sueldobasico numberl(7,2),--máximo estimado 99999.99
  cantidadhijos number(2)--no superará los 99
 );

 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Juan Perez','22333444','m','Sarmiento 123',500,2);
 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Ana Acosta','24555666','f','Colon 134',850,0);
 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Bartolome Barrios','27888999','m','Urquiza 479',10000.80,4);

 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Susana Molina','29000555','f','Salta 876',800.888,3);

 insert into empleados (nombre,documento,sexo,domicilio,sueldobasico,cantidadhijos)
  values ('Marta Juarez','32444555','f','Sucre 1086',5000000,2);

 select *from empleados
  where sueldobasico<=900;

 select *from empleados
  where cantidadhijos>0;

Retornar