57 - Tipo de dato enum.


Problema:
Trabajamos con la tabla "empleados" de una empresa.

1- Elimine la tabla empleados, si existe.

2- Cree la tabla con la siguiente estructura:
 create table empleados(
  documento char(8),
  nombre varchar(30),
  sexo char(1),
  estadocivil enum('soltero','casado','divorciado','viudo') not null,
  sueldobasico decimal(6,2),
  primary key(documento)
);

3- Ingrese algunos registros:
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('22333444','Juan Lopez','m','soltero',300);
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('23333444','Ana Acosta','f','viudo',400);

4- Intente ingresar un valor "null" para el campo enumerado:
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('25333444','Ana Acosta','f',null,400);

5- Ingrese resgistros con valores de índice para el campo "estadocivil":
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('26333444','Luis Perez','m',1,400);
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('26336444','Marcelo Torres','m',3,460);

6- Ingrese un valor inválido, uno no presente en la lista y un valor de índice fuera de rango 
(guarda una cadena vacía):
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('29333444','Lucas Perez','m',0,400);
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('30336444','Federico Garcia','m',5,450);
 insert into empleados (documento,nombre,sexo,estadocivil,sueldobasico)
  values ('31333444','Karina Sosa','f','Concubino',500);

7- Seleccione todos los empleados solteros:
 select * from empleados
  where estadocivil='soltero';

8- Seleccione todos los empleados viudos usando el número de índice de la enumeración:
 select * from empleados
  where estadocivil=4;



 

Otros problemas:
A) Una empresa de turismo vende paquetes de viajes y almacena la información referente a los mismos 
en una tabla llamada "viajes":

1- Elimine la tabla si existe.

2- Cree la tabla:
 create table viajes(
  codigo int unsigned auto_increment,
  nombre varchar(50),
  pension enum ('no','media','completa') not null,
  hotel enum ('1','2','3','4','5'),/* cantidad de estrellas*/
  dias tinyint unsigned,
  salida date,
  precioporpersona decimal(8,2) unsigned,
  primary key(codigo)
 );

4- Ingrese algunos registros:
 insert into viajes (nombre,pension,hotel,dias,salida)
  values ('Mexico mágico','completa','4',15,'2005-12-01');
 insert into viajes (nombre,pension,hotel,dias,salida)
  values ('Europa fantastica','media','5',28,'2005-05-10');
 insert into viajes (nombre,pension,hotel,dias,salida)
  values ('Caribe especial','no','3',7,'2005-11-25');

5- Intente ingresar un valor "null" para el campo "pension":
 insert into viajes (nombre,pension,hotel,dias,salida)
  values ('Mexico maravilloso',null,'4',15,'2005-12-01');

6- Ingrese valor nulo para el campo "hotel"
 insert into viajes (nombre,pension,hotel,dias,salida)
  values ('Mexico especial','media',3,18,'2005-11-01');

7- Ingrese un valor inválido, no presente en la lista de "pension" (guarda una cadena vacía):
 insert into viajes (nombre,pension,hotel,dias,salida)
  values ('Caribe especial','ninguna','4',18,'2005-11-01');

8- Ingrese un valor de índice fuera de rango para el campo "hotel":
 insert into viajes (nombre,pension,hotel,dias,salida)
  values ('Venezuela única','no',6,18,'2005-11-01');

9- Seleccione todos los viajes que incluyen media pensión:
 select * from viajes
  where pension=2;

10- Seleccione todos los viajes que incluyen un hotel de 4 estrellas:
 select * from viajes
  where hotel='4';


B) Una inmobiliaria vende inmuebles; los inmuebles pueden ser: casa, departamento, local o terreno.

1- Elimine la tabla "inmuebles" si existe.

2- Cree la tabla "inmuebles" para registrar la siguiente información:
 - tipo de inmueble: tipo enum (casa,dpto,local,terreno), not null,
 - domicilio: varchar(30),
 - propietario: nombre del dueño,
 - precio: decimal hasta $999999.99 positivo.

3- Ingrese algunos registros.

4- Seleccione el domicilio y precio de todos los departamentos en alquiler.

5- Seleccione el domicilio, propietario y precio de todos los locales en venta.

6- Seleccione el domicilio y precio de todas las casas disponibles.

Retornar