Databases

Examen Pendientes DDL_DCL

Enunciado

Dadas 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

Suponiendo que tienes ya creadas las tablas AVIONES y VUELOS, deberás realizar las siguientes operaciones:

Crear la tabla BILLETES, teniendo en cuenta que:
        a. La clave principal es COD_VUELO, FECHA_VUELO, DNI_PASAJERO
        b. COD_VUELO es clave ajena de AVIONES
        c. Todos los campos son obligatorios

Tipo

DDL

Solución


												
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), constraint bil_cod_fk foreign key (cod_vuelo) references vuelos);

Prueba


											
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'BILLETES' UNION SELECT USER_CONSTRAINTS.TABLE_NAME, COLUMN_NAME, STATUS, POSITION, NULL FROM USER_CONSTRAINTS JOIN USER_CONS_COLUMNS USING (CONSTRAINT_NAME) WHERE CONSTRAINT_TYPE = 'R' AND USER_CONSTRAINTS.TABLE_NAME = 'BILLETES' ORDER BY TABLE_NAME, COLUMN_NAME, DATA_TYPE;

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) references aviones, origen varchar2(20), destino varchar2(20), constraint vue_cod_pk primary key(cod_vuelo));