5. CREATE TABLE Estudiante ( cedula NUMBER(11) NOT NULL, NombreEst VARCHAR2(30) NOT NULL, ApellidoEst VARCHAR2(30) NOT NULL, DireccionEst VARCHAR2(40) NOT NULL, Telf VARCHAR2(20), sexo CHAR NOT NULL, DOB DATE NOT NULL, CategoriaEst CHAR NOT NULL, estado CHAR NOT NULL, fumador CHAR NOT NULL, tipo CHAR NOT NULL, idCurso NUMBER(8), PRIMARY KEY (cedula), CONSTRAINT cursoToma FOREIGN KEY (idCurso) REFERENCES Curso(idCurso) ON UPDATE CASCADE ON DELETE NO ACTION );
18. SELECT e.cedula, e.nombreEst, e.apellidoEst, f.NoFactura AS NUMERO_FACTURA, c.noContrato, c.fechaInicio, c.fechaSalida, c.idHabitacion FROM Estudiante e, Contrato c, Factura f WHERE (e.cedula = c.cedula) and c.noContrato = f.noContrato;
19. SELECT e.cedula, e.nombreEst, e.apellidoEst, f.monto AS AlquilerTotal FROM Estudiante e, Contrato c, Factura f WHERE (e.cedula = c.cedula) and c.noContrato = f.noContrato;
20. SELECT e.cedula, e.nombreEst, e.apellidoEst, f.NoFactura AS NUMERO_FACTURA, c.noContrato, c.fechaInicio, c.fechaSalida, c.idHabitacion FROM Estudiante e, Contrato c, Factura f WHERE (e.cedula = c.cedula) and c.noContrato = f.noContrato;
21. SELECT * FROM Contrato C WHERE NoContrato = (SELECT NoContrato FROM Factura F WHERE C.NoContrato = F.NoContrato and F.semestre = 'V');
22. CREATE UNIQUE INDEX NombreEstudiantes ON Estudiante(nombreEst); CREATE UNIQUE INDEX ApellidoEstudiantes ON Estudiante(apellidoEst); CREATE UNIQUE INDEX NombreDepartamento ON Departamento(nombreD); CREATE UNIQUE INDEX DireccionDepartamento ON Departamento(direccionD); CREATE UNIQUE INDEX NombreEmpleado ON Empleado(nombreE); CREATE UNIQUE INDEX ApellidoEmpleado ON Empleado(apellidoE);
23. Tabla Índice Estudiante NombreEst Apellido Est Departamento nombreD direcciónD Empleado nombreE direcciónE
26. CREATE VIEW EstudianteV AS SELECT e.cedula, e.nombreEst, e.apellidoEst, c.noContrato, c.fechaInicio, c.fechaSalida, c.idHabitacion FROM Estudiante e, Contrato c, Factura f WHERE (e.cedula = c.cedula) and c.noContrato = f.noContrato;