Merge branch 'master' into feature_Consulta_2

# Conflicts:
#	consulta.sql
This commit is contained in:
GID Projects 2020-06-20 16:24:45 -04:00
commit 6246379498
4 changed files with 78 additions and 26 deletions

View File

@ -1,4 +1,17 @@
/*Pregunta 2*/ -- Consulta 1 de la guia
SELECT CONCAT(A.NOMBRE, CONCAT(' ', A.APELLIDO)) AS NOMBRE_ATLETA
FROM PARTICIPAR_PRECOMPETENCIA PP
LEFT JOIN ATLETA A ON (PP.ID_ATLETA = A.ID_ATLETA)
WHERE A.ID_ATLETA NOT IN (
SELECT PC.ID_ATLETA
FROM PARTICIPAR_COMPETENCIA PC
LEFT JOIN COMPETENCIA C ON (C.ID_COMPETENCIA = PC.ID_COMPETENCIA)
LEFT JOIN PRECOMPETENCIA P ON (P.COMPETENCIA = C.ID_COMPETENCIA)
LEFT JOIN PARTICIPAR_PRECOMPETENCIA PP2 ON (PP2.ID_PRECOMPETENCIA = P.ID_PRECOMPETENCIA)
WHERE (PC.ID_ATLETA = PP2.ID_ATLETA)
);
-- Consulta 2 de la guia
/*Parte 1 Crear una vista que trae la cantidad maxima de atletas asociados a un pais que compitan en Atletismo*/ /*Parte 1 Crear una vista que trae la cantidad maxima de atletas asociados a un pais que compitan en Atletismo*/
CREATE OR REPLACE VIEW MAX_ATLETA_ATLETISMO_PAIS AS CREATE OR REPLACE VIEW MAX_ATLETA_ATLETISMO_PAIS AS

View File

@ -24,7 +24,7 @@ INSERT INTO "PAIS" (NOMBRE) VALUES ('Canada');
INSERT INTO "PAIS" (NOMBRE) VALUES ('Republica Checa'); INSERT INTO "PAIS" (NOMBRE) VALUES ('Republica Checa');
INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Natacion'); INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Atletismo');
INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Carrera'); INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Carrera');
INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Arqueria'); INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Arqueria');
INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Basketball'); INSERT INTO "TIPOS_DEPORTES" (DESCRIPCION) VALUES ('Basketball');
@ -83,12 +83,12 @@ INSERT INTO "DELEGACION" (NOMBRE, CANTIDAD_ATLETAS, PAIS, ATLETA) VALUES ('SKT1'
INSERT INTO "DELEGACION" (NOMBRE, CANTIDAD_ATLETAS, PAIS, ATLETA) VALUES ('SUPREME', '2', '4', '4'); INSERT INTO "DELEGACION" (NOMBRE, CANTIDAD_ATLETAS, PAIS, ATLETA) VALUES ('SUPREME', '2', '4', '4');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Natacion', '1', '1', '1'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', '1', '1', '1');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Natacion', '1', '1', '2'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', '1', '1', '2');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Natacion', '1', '1', '3'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', '1', '1', '3');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Natacion', '1', '1', '4'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', '1', '1', '4');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Natacion', '1', '1', '5'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', '1', '1', '5');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Natacion', '1', '1', '6'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Atletismo', '1', '1', '6');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', '4', '2', '1'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', '4', '2', '1');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', '4', '3', '2'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', '4', '3', '2');
INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', '4', '3', '1'); INSERT INTO "COMPETENCIA" (NOMBRE, CATEGORIA, TIPO, LUGAR) VALUES ('Carrera', '4', '3', '1');
@ -108,12 +108,12 @@ INSERT INTO "PRECOMPETENCIA" (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-0
INSERT INTO "PRECOMPETENCIA" (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-10-28 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '4', '2'); INSERT INTO "PRECOMPETENCIA" (FECHA, COMPETENCIA, LUGAR) VALUES (TO_DATE('2020-10-28 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '4', '2');
INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('1', '9', TO_DATE('2020-05-21 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '1500000'); INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('1', '1', TO_DATE('2020-05-21 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '1500000');
INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('1', '6', TO_DATE('2020-05-05 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-06-05 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '350000'); INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('1', '2', TO_DATE('2020-05-05 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-06-05 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '350000');
INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('2', '7', TO_DATE('2020-05-08 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-05-10 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '280000'); INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('2', '3', TO_DATE('2020-05-08 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-05-10 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '280000');
INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('3', '7', TO_DATE('2020-06-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-06-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '168000'); INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('3', '4', TO_DATE('2020-06-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-06-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '168000');
INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('4', '8', TO_DATE('2020-09-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-10-15 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '178000'); INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('4', '2', TO_DATE('2020-09-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-10-15 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '178000');
INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('5', '9', TO_DATE('2020-10-13 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-10-18 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '189000'); INSERT INTO "HOSPEDAR" (ID_HOTEL, ID_DELEGACION, FECHA_INICIO, FECHA_FIN, PRECIO) VALUES ('5', '3', TO_DATE('2020-10-13 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), TO_DATE('2020-10-18 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '189000');
INSERT INTO "GANAR" (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES ('1', '1', '3', TO_DATE('2019-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '70'); INSERT INTO "GANAR" (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES ('1', '1', '3', TO_DATE('2019-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '70');
@ -123,15 +123,16 @@ INSERT INTO "GANAR" (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALU
INSERT INTO "GANAR" (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES ('3', '1', '3', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '89'); INSERT INTO "GANAR" (ID_ATLETA, ID_COMPETENCIA, ID_MEDALLA, FECHA, PUNTAJE) VALUES ('3', '1', '3', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), '89');
INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('1', '1', '70', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('1', '1', '70', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('1', '2', '75', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('1', '2', '75', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('1', '3', '80', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('1', '3', '80', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('2', '1', '25', TO_DATE('2020-06-26 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('2', '1', '25', TO_DATE('2020-06-26 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('3', '2', '100', TO_DATE('2020-06-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('3', '2', '100', TO_DATE('2020-06-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('1', '4', '20', TO_DATE('2020-05-25 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '1', TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '1', TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '2', TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '2', TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '3', TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '3', TO_DATE('2020-06-06 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('2', '1', TO_DATE('2020-07-08 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('2', '1', TO_DATE('2020-07-08 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('3', '2', TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('3', '2', TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));

View File

@ -103,7 +103,8 @@ CREATE TABLE hospedar(
id_delegacion NUMBER, id_delegacion NUMBER,
fecha_inicio DATE, fecha_inicio DATE,
fecha_fin DATE, fecha_fin DATE,
precio NUMBER, precio_delegacion NUMBER,
precio_atleta NUMBER,
CONSTRAINT hospedar_hotel_fk FOREIGN KEY (id_hotel) REFERENCES hotel(id_hotel), CONSTRAINT hospedar_hotel_fk FOREIGN KEY (id_hotel) REFERENCES hotel(id_hotel),
CONSTRAINT hospedar_delegacion_fk FOREIGN KEY (id_delegacion) REFERENCES delegacion(id_delegacion) CONSTRAINT hospedar_delegacion_fk FOREIGN KEY (id_delegacion) REFERENCES delegacion(id_delegacion)
); );

View File

@ -1,3 +1,5 @@
/* Pregunta 3*/
CREATE OR REPLACE TRIGGER correlative_increment BEFORE INSERT ON ciudad FOR EACH ROW CREATE OR REPLACE TRIGGER correlative_increment BEFORE INSERT ON ciudad FOR EACH ROW
DECLARE DECLARE
@ -9,3 +11,38 @@ BEGIN
SELECT MAX(id_ciudad) INTO idCiudad FROM ciudad; SELECT MAX(id_ciudad) INTO idCiudad FROM ciudad;
:new.id_ciudad := idCiudad + 1; :new.id_ciudad := idCiudad + 1;
END; END;
/* Pregunta 4 */
CREATE OR REPLACE TRIGGER Validacion_Pre_Competencia BEFORE INSERT ON PARTICIPAR_COMPETENCIA
FOR EACH ROW
DECLARE
CURSOR participar_preco
IS SELECT PPC.id_precompetencia
FROM PARTICIPAR_PRECOMPETENCIA PPC
LEFT JOIN PRECOMPETENCIA PC ON PC.id_precompetencia = PPC.id_precompetencia
WHERE PPC.id_atleta = :NEW.id_atleta AND pc.competencia = :NEW.id_competencia;
id_precompetencia PARTICIPAR_PRECOMPETENCIA.id_precompetencia%TYPE;
BEGIN
OPEN participar_preco;
FETCH participar_preco into id_precompetencia;
IF participar_preco%found THEN
dbms_output.put_line('EL ATLETA HA PARTICIPADO EN PRECOMPETENCIAS ASOCIADAS');
ELSE Raise_Application_Error(-20120, 'NO SE PUEDE INSERTAR, EL ATLETA NO POSEE PRECOMPETENCIAS ASOCIADAS A LA COMPETENCIA');
END IF;
CLOSE participar_preco;
END;
INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '21', TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_PRECOMPETENCIA" (ID_PRECOMPETENCIA, ID_ATLETA, PUNTAJE, FECHA) VALUES ('3', '2', '100', TO_DATE('2020-06-27 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
INSERT INTO "PARTICIPAR_COMPETENCIA" (ID_COMPETENCIA, ID_ATLETA, FECHA) VALUES ('1', '21', TO_DATE('2020-07-09 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
/* Pregunta 5 */