Prueba+de+evaluación+1



code format="sql" prompt ================= Borrando tablas ================= DROP TABLE CANTA; DROP TABLE CORO; DROP TABLE DIRECTOR; DROP TABLE TEMA;

prompt ================= Creando tablas ================= -- Tabla TEMA: tema (canción) que puede cantarse CREATE TABLE TEMA ( cod_tema char(4) constraint PK_TEMA PRIMARY KEY, --código del tema  titulo varchar2(200),  --título del tema  autor varchar2(100) --autor del tema );

-- Tabla DIRECTOR: directores de coro CREATE TABLE DIRECTOR ( DNI char(9) constraint PK_DIRECTOR PRIMARY KEY,  -- director de coro  nombre varchar2(100) NOT NULL, --nombre del director  fecha_nac date, --fecha de nacimiento  formacion varchar2(1000) --texto libre donde se apunta la formación del director );

-- Tabla CORO: coro que participa en el concurso CREATE TABLE CORO ( cod_coro char(4) constraint PK_CORO PRIMARY KEY,   -- código del coro  nombre varchar2(100) NOT NULL,                       -- nombre del coro  dire char(9),                              -- director del coro  antiguedad number(4),                                 -- antigüedad, en años, del coro  constraint FK_CORO_DIREC FOREIGN KEY (dire) REFERENCES DIRECTOR -- departamento donde se desarrolla el proyecto );

-- Tabla CANTA: la lista de temas cantado por cada coro CREATE TABLE CANTA ( cod_cor char(4), --código del coro  cod_tema char(4), --código del tema interpretado  constraint FK_CANTA_CORO FOREIGN KEY (cod_cor) REFERENCES CORO,  constraint FK_CANTA_TEMA FOREIGN KEY (cod_tema) REFERENCES TEMA,  constraint PK_CANTA PRIMARY KEY (cod_cor,cod_tema) );

prompt ...hecho.

prompt ================= Inserción de datos de ejemplo ================= INSERT INTO DIRECTOR VALUES ('11111111A','Director 1','15/02/1965','Conservatorio, Dirección de coros aficionados'); INSERT INTO DIRECTOR VALUES ('22222222B','Director 2','1/04/1968','DIRECCIÓN CORAL'); INSERT INTO DIRECTOR VALUES ('33333333C','Director 3','3/04/1968','Desconocida'); INSERT INTO DIRECTOR VALUES ('44444444C','Director 4','28/12/1967','Desconocida'); INSERT INTO DIRECTOR VALUES ('55555555C','Director 5','4/07/1959','Desconocida'); INSERT INTO DIRECTOR VALUES ('66666666C','Director 6','23/03/1976','Desconocida');

INSERT INTO CORO VALUES ('C001','Ruiseñores','11111111A',3); INSERT INTO CORO VALUES ('C002','Jilguerillos','22222222B',2); INSERT INTO CORO VALUES ('C003','Periquitos','33333333C',1); INSERT INTO CORO VALUES ('C004','Abubillos','44444444C',7); INSERT INTO CORO VALUES ('C005','Abubillos','55555555C',15); INSERT INTO CORO VALUES ('C006','Chorlitos','66666666C',8);

INSERT INTO TEMA VALUES ('T001','Tema 1','Autor A'); INSERT INTO TEMA VALUES ('T002','Tema 2','M. Salvador'); INSERT INTO TEMA VALUES ('T003','Tema 3','M. Salvador'); INSERT INTO TEMA VALUES ('T004','Tema 4','Autor C'); INSERT INTO TEMA VALUES ('T005','Tema 5','Autor D');

INSERT INTO CANTA VALUES ('C001','T004'); INSERT INTO CANTA VALUES ('C001','T003'); INSERT INTO CANTA VALUES ('C002','T004'); INSERT INTO CANTA VALUES ('C003','T004'); INSERT INTO CANTA VALUES ('C004','T004'); INSERT INTO CANTA VALUES ('C005','T001'); INSERT INTO CANTA VALUES ('C005','T002');

--Escriba consultas en SQL para resolver los siguientes preguntas: --a. Obtener el código y el título de los temas cantados por más de 3 coros (1) --b. Obtener un listado de todos los coros que hay, mostrando su nombre y el número de temas que cantan (1) --c. Obtener el DNI y nombre del director más viejo que tenga en cualquier parte del texto de formación la palabra "Dirección", sin importar que sea en mayúsculas o minúsculas (1'5) --d. De cada director que dirige algún coro que ha cantado algún tema, obtener el código, nombre y número de coros que dirige (1'5) --e. Obtener el código y nombre del coro/s que cantan más temas (2) --f. Obtener el código y el nombre de los coros que cantan todos los temas compuestos por "M. Salvador" (2) --g. Utilizando la función decode, realiza una consulta SQL que devuelva textualmente ‘Si’ o ‘No’ a la pregunta ¿algún autor de temas es también director de algún coro? (1) code