Databases

Examen Pendientes DDL_DCL

Enunciado

Imagina que ya tenemos creadas las siguientes tablas:

  • AVIONES  <COD_AVION, NOMBRE, CAPACIDAD, FECHA_COMPRA>
  • VUELOS   <COD_VUELO, *COD_AVION, ORIGEN, DESTINO>
  • BILLETES <*COD_VUELO, FECHA_VUELO, DNI_PASAJERO, PLAZA, CLASE>
  • Tabla AVIONES
    • COD_AVION: cadena de tamaño 5
    • NOMBRE: cadena de tamaño 10
    • CAPACIDAD: entero de valor máximo 660
    • FECHA_COMPRA: de tipo fecha
  • Tabla VUELOS
    • COD_VUELO: cadena de tamaño 3
    • COD_AVION: cadena de tamaño 5
    • ORIGEN: cadena de tamaño 20
    • DESTINO: cadena de tamaño 20
  • Tabla BILLETES
    • COD_VUELO: cadena de tamaño 3
    • FECHA_VUELO: tipo fecha
    • DNI_PASAJERO: cadena de tamaño 9
    • ASIENTO: cadena de tamaño 3
    • CLASE: cadena de tamaño 7
Haz que el campo CLASE de la tabla BILLETES únicamente pueda tener los dos siguientes valores: Primera y Turista

Tipo

DDL

Solución


												
alter table billetes add constraint bil_cla_ck check (clase in ('Turista', 'Primera'));

Prueba


											
INSERT INTO BILLETES (cod_vuelo, fecha_vuelo, dni_pasajero, asiento, clase) VALUES ('AAA', TO_DATE('01/01/2022','DD/MM/YYYY'), '12345679A', '10A', 'Turista'); INSERT INTO BILLETES (cod_vuelo, fecha_vuelo, dni_pasajero, asiento, clase) VALUES ('BBB', TO_DATE('02/01/2022','DD/MM/YYYY'), '12345699A', '10B', 'Primera'); INSERT INTO BILLETES (cod_vuelo, fecha_vuelo, dni_pasajero, asiento, clase) VALUES ('CCC', TO_DATE('03/01/2022','DD/MM/YYYY'), '12345999A', '10C', 'Segunda'); SELECT * FROM BILLETES ORDER BY COD_VUELO;

Librerías (Onfly databases)


											
create table aviones ( cod_avion varchar2(5) primary key, nombre varchar2(10), capacidad number(3), fecha_compra date); create table vuelos( cod_vuelo varchar2(3), cod_avion varchar2(5), origen varchar2(20), destino varchar2(20), constraint vue_cod_pk primary key(cod_vuelo)); create table billetes( cod_vuelo varchar2(3), fecha_vuelo date, dni_pasajero varchar2(9), asiento varchar2(3) not null, clase varchar2(7) not null, constraint bil_cod_pk primary key (cod_vuelo, fecha_vuelo, dni_pasajero));