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 en la tabla VUELOS, el ORIGEN deba ser distinto de DESTINO en el mismo vuelo.

Tipo

DDL

Solución


												
alter table vuelos add constraint vue_ori_ck check (origen != destino);

Prueba


											
INSERT INTO VUELOS (cod_vuelo, cod_avion, origen, destino) VALUES ('AAA', 'IB123', 'MJV', 'MAD'); INSERT INTO VUELOS (cod_vuelo, cod_avion, origen, destino) VALUES ('BBB', 'IB123', 'MJV', 'MJV'); SELECT * FROM VUELOS;

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