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

