Está en la página 1de 8

1) TABLAS SQL

Create table Equipo(


Nombre char(30) PRIMARY KEY,
Director char(30),
Nacionalidad char(30)
);
Create table Ciclista(
DNI int PRIMARY KEY,
Nombre char(30),
Fecha_nacimiento date
);
Create table Edicion(
Año int PRIMARY KEY,
Fecha_inicio date,
Fecha_fin date,
Etapas char(30)
);
Create table Puerto_Montaña(
Nombre char(30) PRIMARY KEY,
Carretera char(30),
Categoria char(30),
Km_carretera char(30)
);
Create table Equipo_Ciclista(
Nombre_foraneo char(30),
DNI_foraneo int,
Periodo int,
Fecha_inicio date,
Fecha_fin date,
PRIMARY key (Nombre_foraneo,DNI_foraneo),
FOREIGN KEY (Nombre_foraneo) REFERENCES Equipo (Nombre),
FOREIGN KEY (DNI_foraneo) REFERENCES Ciclista (DNI)
);
Create table Edicion_Equipo(
Puesto char(30),
Tiempo int,
Año_foraneo int,
Nombre_equipo_foraneo char(30),
PRIMARY KEY (Año_foraneo,Nombre_equipo_foraneo),
FOREIGN KEY (Año_foraneo) REFERENCES Edicion (Año),
FOREIGN KEY (Nombre_equipo_foraneo) REFERENCES Equipo (Nombre)
);
Create table Etapa(
Cod_etapa int,
Año_foraneo int,
Ciudad_destino char(30),
Ciudad_origen char(30),
Kilometros int,
Tipo char(30),
Fecha date,
PRIMARY KEY (Cod_etapa,Año_foraneo)
FOREIGN KEY (Año_foraneo) REFERENCES Edicion (Año)
);
Create table Edicion_Ciclista(
DNI_foraneo int,
Año_foraneo int,
Clasificacion_montaña char(30),
Tiempo_en_la_general int,
PRIMARY KEY (DNI_foraneo,Año_foraneo),
FOREIGN KEY (DNI_foraneo) REFERENCES Cilista (DNI),
FOREIGN KEY (DNI_foraneo) REFERENCES Cilista (DNI)
);
Create table Etapa_Ciclista(
DNI_foraneo int,
Cod_etapa_foraneo int,
Tiempo_obtenido int,
primary key (DNI_foraneo,Cod_etapa_foraneo),
FOREIGN KEY (DNI_foraneo) REFERENCES Ciclista (DNI),
FOREIGN KEY (Cod_etapa_foraneo) REFERENCES Etapa(Cod_etapa)
);
Create table Tramo(
Cod_tramo int,
Cod_etapa_foraeno int,
Carretra char(30),
Km_inicial char(30),
Km_final char(30),
PRIMARY key (Cod_tramo,Cod_etapa_foraeno),
FOREIGN KEY (Cod_etapa_foraeno) REFERENCES Etapa (Cod_etapa)
);
Create table Etapa_Cilista_Puerto_Montaña(
Puesto char(30),
Cod_etapa_foraneo int,
DNI_foraneo int,
Nombre_foraneo char(30),
PRIMARY KEY (Cod_etapa_foraneo,DNI_foraneo,Nombre_foraneo),
FOREIGN KEY (Cod_etapa_foraneo) REFERENCES Etapa(cod_etapa),
FOREIGN KEY (DNI_foraneo) REFERENCES Ciclista(DNI),
FOREIGN KEY (Nombre_foraneo) REFERENCES Puerto_Montaña(Nombre)
);
Create table Etapa_Puerto_Montaña(
Cod_etapa_foraneo int,
Nombre_foraneo char(30),
Km_etapa char(30),
PRIMARY key (Cod_etapa_foraneo,Nombre_foraneo),
FOREIGN KEY (Cod_etapa_foraneo) REFERENCES Etapa (Cod_etapa),
FOREIGN KEY (Nombre_foraneo) REFERENCES Puerto_Montaña (Nombre)
);

2) DATOS INSERTADOS
-- Insertar datos en la tabla Equipo
INSERT INTO Equipo (Nombre, Director, Nacionalidad)
VALUES ('Equipo A', 'Director A', 'Nacionalidad A'),
('Equipo B', 'Director B', 'Nacionalidad B'),
('Equipo C', 'Director C', 'Nacionalidad C');

-- Insertar datos en la tabla Ciclista


INSERT INTO Ciclista (DNI, Nombre, Fecha_nacimiento)
VALUES (1, 'Ciclista A', '1990-01-01'),
(2, 'Ciclista B', '1985-03-15'),
(3, 'Ciclista C', '1992-07-20');

-- Insertar datos en la tabla Edicion


INSERT INTO Edicion (Año, Fecha_inicio, Fecha_fin, Etapas)
VALUES (2021, '2021-07-01', '2021-07-21', 'Etapas A'),
(2022, '2022-06-30', '2022-07-20', 'Etapas B'),
(2023, '2023-07-05', '2023-07-25', 'Etapas C');

-- Insertar datos en la tabla Puerto_Montaña


INSERT INTO Puerto_Montaña (Nombre, Carretera, Categoria, Km_carretera)
VALUES ('Puerto A', 'Carretera A', 'Categoria A', '50 km'),
('Puerto B', 'Carretera B', 'Categoria B', '30 km'),
('Puerto C', 'Carretera C', 'Categoria C', '40 km');

-- Insertar datos en la tabla Equipo_Ciclista


INSERT INTO Equipo_Ciclista (Nombre_foraneo, DNI_foraneo, Periodo, Fecha_inicio,
Fecha_fin)
VALUES ('Equipo A', 1, 2021, '2021-01-01', '2021-12-31'),
('Equipo B', 2, 2022, '2022-01-01', '2022-12-31'),
('Equipo C', 3, 2023, '2023-01-01', '2023-12-31');

-- Insertar datos en la tabla Edicion_Equipo


INSERT INTO Edicion_Equipo (Puesto, Tiempo, Año_foraneo, Nombre_equipo_foraneo)
VALUES ('Primer puesto', 150, 2021, 'Equipo A'),
('Segundo puesto', 160, 2022, 'Equipo B'),
('Tercer puesto', 155, 2023, 'Equipo C');

-- Insertar datos en la tabla Etapa


INSERT INTO Etapa (Cod_etapa, Año_foraneo, Ciudad_destino, Ciudad_origen, Kilometros,
Tipo, Fecha)
VALUES (1, 2021, 'Destino A', 'Origen A', 100, 'Tipo A', '2021-07-02'),
(2, 2022, 'Destino B', 'Origen B', 120, 'Tipo B', '2022-07-10'),
(3, 2023, 'Destino C', 'Origen C', 90, 'Tipo C', '2023-07-15');

-- Insertar datos en la tabla Edicion_Ciclista


INSERT INTO Edicion_Ciclista (DNI_foraneo, Año_foraneo, Clasificacion_montaña,
Tiempo_en_la_general)
VALUES (1, 2021, 'Montaña A', 800),
(2, 2022, 'Montaña B', 810),
(3, 2023, 'Montaña C', 795);

-- Insertar datos en la tabla Etapa_Ciclista


INSERT INTO Etapa_Ciclista (DNI_foraneo, Cod_etapa_foraneo, Tiempo_obtenido)
VALUES (1, 1, 120),
(2, 2, 125),
(3, 3, 118);

-- Insertar datos en la tabla Tramo


INSERT INTO Tramo (Cod_tramo, Cod_etapa_foraeno, Carretra, Km_inicial, Km_final)
VALUES (1, 1, 'Carretera A', '0 km', '20 km'),
(2, 2, 'Carretera B', '10 km', '25 km'),
(3, 3, 'Carretera C', '5 km', '18 km');

-- Insertar datos en la tabla Etapa_Cilista_Puerto_Montaña


INSERT INTO Etapa_Cilista_Puerto_Montaña (Puesto, Cod_etapa_foraneo, DNI_foraneo,
Nombre_foraneo)
VALUES ('Primer puesto', 1, 1, 'Puerto A'),
('Segundo puesto', 2, 2, 'Puerto B'),
('Tercer puesto', 3, 3, 'Puerto C');
Consulta 1: Obtener el nombre del ciclista, la ciudad de destino y el puesto en la etapa
donde obtuvieron el mejor resultado

SELECT C.Nombre, E.Ciudad_destino, EP.Puesto

FROM Ciclista C

JOIN Etapa_Ciclista EP ON C.DNI = EP.DNI_foraneo

JOIN Etapa E ON E.Cod_etapa = EP.Cod_etapa_foraneo

WHERE EP.Tiempo_obtenido = (SELECT MIN(Tiempo_obtenido) FROM Etapa_Ciclista WHERE


DNI_foraneo = C.DNI);

Consulta 2: Obtener el nombre del equipo y la cantidad de ciclistas que tiene en cada
edición.

SELECT EC.Nombre_equipo_foraneo, COUNT(EC.DNI_foraneo) AS Cantidad_Ciclistas

FROM Equipo_Ciclista EC

GROUP BY EC.Nombre_equipo_foraneo;

Consulta 3: Obtener el nombre del equipo, el nombre del ciclista y el tiempo obtenido en
una etapa específica.

SELECT EC.Nombre_foraneo, C.Nombre, EC.Tiempo_obtenido

FROM Etapa_Ciclista EC

JOIN Ciclista C ON C.DNI = EC.DNI_foraneo

WHERE EC.Cod_etapa_foraneo = 1;

Consulta 4: Obtener el nombre del equipo, el nombre del ciclista y el puesto en la etapa
de montaña.

SELECT EC.Nombre_foraneo, C.Nombre, EMC.Puesto

FROM Etapa_Ciclista_Puerto_Montaña EMC

JOIN Ciclista C ON C.DNI = EMC.DNI_foraneo

JOIN Etapa E ON E.Cod_etapa = EMC.Cod_etapa_foraneo

JOIN Equipo_Ciclista EC ON EC.DNI_foraneo = EMC.DNI_foraneo AND EC.Nombre_foraneo =


EMC.Nombre_foraneo;
Consulta 5: Obtener el nombre del equipo, el nombre del ciclista y el tipo de etapa en la
que participaron.

SELECT EC.Nombre_foraneo, C.Nombre, E.Tipo

FROM Etapa_Ciclista EC

JOIN Ciclista C ON C.DNI = EC.DNI_foraneo

JOIN Etapa E ON E.Cod_etapa = EC.Cod_etapa_foraneo;

Consulta 6: Obtener el nombre del equipo, la ciudad de origen y la ciudad de destino de


todas las etapas en las que participaron

SELECT EC.Nombre_foraneo, E.Ciudad_origen, E.Ciudad_destino

FROM Etapa_Ciclista EC

JOIN Etapa E ON E.Cod_etapa = EC.Cod_etapa_foraneo;

Consulta 7: Obtener el nombre del equipo, el nombre del ciclista y la clasificación en la


montaña en una edición específica.

SELECT EC.Nombre_foraneo, C.Nombre, EC.Clasificacion_montaña

FROM Edicion_Ciclista EC

JOIN Ciclista C ON C.DNI = EC.DNI_foraneo

WHERE EC.Año_foraneo = 2022;

Consulta 8: Obtener el nombre del equipo, el nombre del ciclista y el nombre del puerto
de montaña en el que participaron.

SELECT EC.Nombre_foraneo, C.Nombre, PM.Nombre

FROM Etapa_Cilista_Puerto_Montaña EC

JOIN Ciclista C ON C.DNI = EC.DNI_foraneo

JOIN Puerto_Montaña PM ON PM.Nombre = EC.Nombre_foraneo;


Consulta 9: Obtener el nombre del equipo, la ciudad de origen y la ciudad de destino de
todas las etapas de una edición específica.

SELECT EE.Nombre_equipo_foraneo, E.Ciudad_origen, E.Ciudad_destino

FROM Edicion_Equipo EE

JOIN Etapa E ON E.Año_foraneo = EE.Año_foraneo;

Consulta 10: Obtener el nombre del ciclista, el nombre del equipo y la clasificación
obtenida en una edición específica.

SELECT C.Nombre, EC.Nombre_foraneo, EC.Puesto


FROM Edicion_Ciclista EC
JOIN Ciclista C ON C.DNI = EC.DNI_foraneo
WHERE EC.Año_foraneo = 2023;

También podría gustarte