SQL Oracle como crear tablas,vistas, y consultas y subconsultas
julillo.dlsPráctica o problema26 de Septiembre de 2016
442 Palabras (2 Páginas)806 Visitas
1. Elaborar una sentencia SQL que permita crear la tabla CURSOS. La configuración de los campos debe ser:
CREATE TABLE CURSOS (CURSO_ID NUMBER, CURSO_NOMBRE VARCHAR(100),CURSO_DOCENTE NUMBER);
2. Elaborar una sentencia SQL que permita modificar la tabla CURSOS agregándole una primary key sobre el campo CURSO_ID.
ALTER TABLE CURSOS ADD (CONSTRAINT CURSO_ID_PK PRIMARY KEY (CURSO_ID));
3. Elaborar una sentencia SQL que permita modificar la tabla CURSOS agregándole una foreign key sobre el campo CURSO_DOCENTE que referencie hacia el campo EMPLOYEE_ID de la tabla EMPLOYEES.
ALTER TABLE CURSOS ADD (CONSTRAINT CURSO_DOCENTE_FK FOREIGN KEY (CURSO_DOCENTE) REFERENCES EMPLOYEES (EMPLOYEE_ID));
4. Elaborar una sentencia SQL que permita crear la tabla CURSOS_CONFIRMADOS. La configuración de los campos debe ser:
Incluir en la sentencia de creación la generación de la clave primaria formada por los campos CURSO_ID y FECHA.
Incluir también la creación de la clave foránea en el campo LOCATION_ID que referencia al campo LOCATION_ID de la tabla LOCATIONS.
CREATE TABLE CURSOS_CONFIRMADOS (CURSO_ID NUMBER, FECHA DATE, LOCATION_ID NUMBER, HORA_INICIO VARCHAR2(10),HORA_FIN VARCHAR2(10),
CONSTRAINT CURSO_ID_FECHA_PK PRIMARY KEY (CURSO_ID,FECHA),
CONSTRAINT LOCATION_ID_FK FOREIGN KEY(LOCATION_ID) REFERENCES LOCATIONS (LOCATION_ID));
5. Elaborar una sentencia SQL que permita crear la tabla PARTICIPANTES. La configuración de los campos debe ser:
CREATE TABLE PARTICIPANTES (CURSO_ID NUMBER, FECHA DATE, EMPLOYEE_ID NUMBER, ASISTIO VARCHAR2(1));
6. Elaborar una sentencia SQL que permita modificar la tabla PARTICIPANTES agregándole una primary key compuesta por los campos (CURSO_ID, FECHA, EMPLOYEE_ID).
ALTER TABLE PARTICIPANTES ADD(CONSTRAINT CURSO_ID_FECHA_EMPLOYEE_ID_PK PRIMARY KEY (CURSO_ID, FECHA, EMPLOYEE_ID));
7. Elaborar una sentencia SQL que permita modificar la tabla PARTICIPANTES agregándole una foreign key sobre los campos CURSO_ID y FECHA que referencie hacia la primary key de la tabla CURSOS_CONFIRMADOS.
ALTER TABLE PARTICIPANTES ADD (CONSTRAINT CURSO_ID_FECHA_FK FOREIGN KEY (CURSO_ID, FECHA) REFERENCES CURSOS_CONFIRMADOS(CURSO_ID,FECHA));
8. Elaborar una sentencia SQL que permita crear una nueva constraint sobre la tabla PARTICIPANTES que solo permita ingresar los valores “S” y “N” en el campo ASISTIO.
ALTER TABLE PARTICIPANTES ADD (CONSTRAINT ASISTIO_CK CHECK (ASISTIO = 'S' OR ASISTIO = 'N'));
9. Elaborar las sentencias SQL necesarias para crear las vistas CURSOS_V, PARTICIPANTES_V y CURSOS_CONFIRMADOS_V que muestren todos los campos y todos los registros de las tablas CURSOS, PARTICIPANTES y CURSOS_CONFIRMADOS respectivamente.
CREATE OR REPLACE VIEW CURSOS_V AS (SELECT * FROM CURSOS);
CREATE OR REPLACE VIEW PARTICIPANTES_V AS (SELECT * FROM PARTICIPANTES);
CREATE OR REPLACE VIEW CURSOS_CONFIRMADOS_V AS (SELECT * FROM CURSOS_CONFIRMADOS);
10. Elaborar una sentencia SQL que permita crear una vista llamada PROXIMOS_CURSOS que muestre los siguientes campos:
CREATE OR REPLACE VIEW PROXIMOS_CURSOS_V AS (SELECT CURSOS.CURSO_NOMBRE,CURSOS_CONFIRMADOS.FECHA,LOCATIONS.CITY AS CIUDAD,
(E.FIRST_NAME ||','|| E.LAST_NAME) AS EMPLEADO,(EMPLOYEES.FIRST_NAME ||','|| EMPLOYEES.LAST_NAME) AS NOMBRE_DOCENTE
FROM CURSOS_CONFIRMADOS INNER JOIN PARTICIPANTES ON CURSOS_CONFIRMADOS.CURSO_ID=PARTICIPANTES.CURSO_ID
AND CURSOS_CONFIRMADOS.FECHA=PARTICIPANTES.FECHA JOIN EMPLOYEES ON EMPLOYEES.EMPLOYEE_ID=PARTICIPANTES.EMPLOYEE_ID
INNER JOIN LOCATIONS ON LOCATIONS.LOCATION_ID = CURSOS_CONFIRMADOS.LOCATION_ID
INNER JOIN CURSOS ON CURSOS.CURSO_ID=CURSOS_CONFIRMADOS.CURSO_ID
...