diff --git a/BDD/tp/BDDs2/tp1/requetes.sql b/BDD/tp/BDDs2/tp1/requetes_tp1.sql similarity index 100% rename from BDD/tp/BDDs2/tp1/requetes.sql rename to BDD/tp/BDDs2/tp1/requetes_tp1.sql diff --git a/BDD/tp/BDDs2/tp1/requetes_tp2.sql b/BDD/tp/BDDs2/tp1/requetes_tp2.sql new file mode 100644 index 0000000..2bc1042 --- /dev/null +++ b/BDD/tp/BDDs2/tp1/requetes_tp2.sql @@ -0,0 +1,407 @@ +-- Question 1 +SELECT count(athlete) +FROM Athlete +GROUP BY pays; + +-- count +-- ------- +-- 37 +-- 10 +-- 108 +-- 2 +-- 283 +-- 3 +-- 8 +-- 5 +-- 3 +-- 8 +-- 41 +-- 5 +-- 43 +-- 69 +-- 172 +-- 116 +-- 76 +-- 125 +-- 90 +-- 392 +-- 5 +-- 11 +-- 2 +-- 33 +-- 2 +-- 44 +-- 3 +-- 6 +-- 130 +-- 35 +-- 20 +-- 53 +-- 3 +-- 115 +-- 13 +-- 2 +-- 6 +-- 42 +-- 82 +-- 31 +-- 5 +-- 6 +-- 43 +-- 5 +-- 6 + + +-- Question 2 +SELECT count(epreuve) +FROM Epreuve +GROUP BY discipl; + +-- count +-- ------- +-- 12 +-- 2 +-- 35 +-- 2 +-- 2 +-- 2 +-- 48 +-- 2 +-- 2 +-- 3 +-- 2 +-- 2 +-- 2 +-- 2 +-- 4 +-- 2 +-- 14 +-- 5 +-- 12 +-- 6 +-- 14 +-- 10 +-- 2 +-- 26 +-- 18 +-- 2 +-- 2 +-- 2 +-- 5 +-- 2 +-- 12 +-- 8 +-- 5 +-- 8 +-- 2 +-- 15 +-- 14 +-- 8 +-- 15 +-- 8 +-- 2 +-- 2 +-- 4 +-- 2 +-- 2 + +-- Question 3 +SELECT MAX(e.dateE), d.nom +FROM Discipline d, Epreuve e +WHERE e.discipl = d.code +GROUP BY e.discipl, d.nom; + +-- max | nom +-- ------------+----------------------- +-- 2021-07-27 | Surfing +-- 2021-07-30 | Canoe Slalom +-- 2021-08-01 | Cycling BMX Freestyle +-- 2021-08-07 | Diving +-- 2021-07-27 | Taekwondo +-- 2021-07-28 | Cycling Road +-- 2021-08-08 | Boxing +-- 2021-08-03 | Artistic Gymnastics +-- 2021-08-01 | Swimming +-- 2021-07-31 | Triathlon +-- 2021-08-08 | Basketball +-- 2021-08-02 | Shooting +-- 2021-08-06 | Hockey +-- 2021-08-05 | Marathon Swimming +-- 2021-08-07 | Artistic Swimming +-- 2021-08-04 | Sailing +-- 2021-08-07 | Karate +-- 2021-08-04 | Weightlifting +-- 2021-08-07 | Baseball/Softball +-- 2021-08-07 | Football +-- 2021-07-27 | Cycling Mountain Bike +-- 2021-07-31 | Rugby Sevens +-- 2021-08-07 | Beach Volleyball +-- 2021-08-01 | Tennis +-- 2021-08-07 | Canoe Sprint +-- 2021-08-06 | Table Tennis +-- 2021-08-07 | Wrestling +-- 2021-07-30 | Cycling BMX Racing +-- 2021-08-07 | Equestrian +-- 2021-07-28 | 3x3 Basketball +-- 2021-08-08 | Cycling Track +-- 2021-08-08 | Volleyball +-- 2021-08-01 | Fencing +-- 2021-07-31 | Judo +-- 2021-08-05 | Skateboarding +-- 2021-07-31 | Archery +-- 2021-08-07 | Modern Pentathlon +-- 2021-08-06 | Sport Climbing +-- 2021-08-07 | Golf +-- 2021-08-02 | Badminton +-- 2021-08-08 | Handball + +-- Question 4 +SELECT max(a.dateNaiss), a.sexe +FROM Athlete a, Pratiquer p, Discipline d +WHERE a.code = p.athlete AND p.discipl = d.code AND a.sexe IS NOT NULL +GROUP BY a.sexe, p.discipl; + +-- max | sexe +-- ------------+------ +-- 2003-01-28 | F +-- 2002-03-14 | M +-- 2002-05-11 | F +-- 2001-06-29 | M +-- 2004-04-07 | F +-- 2001-11-25 | M +-- 2003-07-24 | M +-- 2003-08-10 | M +-- 2002-09-18 | M +-- 2004-05-05 | M +-- 2000-11-20 | M +-- 2001-01-01 | M +-- 2000-07-08 | M +-- 2007-03-28 | F +-- 2002-10-20 | F +-- 2002-03-09 | M +-- 2005-10-11 | F +-- 2003-04-12 | M +-- 2001-10-03 | F +-- 1999-02-25 | F +-- 2002-01-29 | F +-- 2002-03-19 | M +-- 2004-11-29 | F +-- 2004-01-29 | M +-- 2001-02-01 | M +-- 2002-03-03 | M +-- 2000-01-25 | M +-- 2001-03-12 | M +-- 2003-01-15 | M +-- 2004-01-26 | F +-- 1999-10-07 | M +-- 2001-09-03 | F +-- 2004-01-02 | F +-- 2001-07-06 | M +-- 2001-12-05 | M +-- 2004-04-18 | F +-- 2000-09-01 | M +-- 2001-03-28 | M +-- 2002-01-04 | F + +-- Question 5 +SELECT count(m.place) +FROM Medaille m, Athlete a, Resultat r +WHERE m.place = r.medaille AND r.athlete = a.code +GROUP BY a.pays +ORDER BY count(m.place) DESC; + +-- count +-- ------- +-- 295 +-- 147 +-- 140 +-- 137 +-- 131 +-- 130 +-- 129 +-- 82 +-- 77 +-- 72 +-- 70 +-- 69 +-- 65 +-- 55 +-- 51 +-- 43 +-- 38 +-- 35 +-- 33 +-- 32 +-- 32 +-- 31 +-- 29 +-- 27 +-- 26 +-- 26 +-- 24 +-- 23 +-- 19 +-- 16 +-- 16 +-- 16 +-- 15 +-- 14 +-- 13 +-- 13 +-- 11 +-- 10 +-- 10 +-- 10 +-- 9 +-- 8 +-- 8 +-- 8 +-- 8 + +-- Question 6 +SELECT count(m.place) +FROM Medaille m, Athlete a, Resultat r +WHERE m.place = r.medaille AND r.athlete = a.code AND m.couleur = 'Or' +GROUP BY a.pays +ORDER BY count(m.place) DESC; + +-- count +-- ------- +-- 112 +-- 68 +-- 65 +-- 58 +-- 40 +-- 39 +-- 36 +-- 36 +-- 31 +-- 29 +-- 29 +-- 20 +-- 18 +-- 18 +-- 15 +-- 14 +-- 13 +-- 10 +-- 9 +-- 9 +-- 8 +-- 7 +-- 5 +-- 5 +-- 5 +-- 5 +-- 4 +-- 4 +-- 4 +-- 4 +-- 4 +-- 3 +-- 3 +-- 3 +-- 3 +-- 3 +-- 3 +-- 2 +-- 2 +-- 2 +-- 2 +-- 2 +-- 2 +-- 2 +-- 2 + +-- Question 7 +SELECT count(m.place) +FROM Medaille m, Athlete a, Resultat r +WHERE m.place = r.medaille AND r.athlete = a.code AND m.couleur = 'Or' +GROUP BY a.pays +HAVING count(m.place) > 30 +ORDER BY count(m.place) DESC; + +-- count +-- ------- +-- 112 +-- 68 +-- 65 +-- 58 +-- 40 +-- 39 +-- 36 +-- 36 +-- 31 + + +-- Question 8 +SELECT a.code, a.nom, a.prenom, a.pays +FROM Athlete a, Pratiquer p +WHERE a.code = p.athlete +GROUP BY a.code, a.nom, a.prenom, a.pays +HAVING count(p.*) > 1; + +-- code | nom | prenom | pays +-- --------+----------------+------------+------ +-- A05315 | KOPECKY | Lotte | BEL +-- A01327 | BRENNAUER | Lisa | GER +-- A07786 | PALTRINIERI | Gregorio | ITA +-- A05148 | KIRPICHNIKOVA | Anastasiia | ROC +-- A02686 | DYGERT | Chloe | USA +-- A10627 | VAN ROUWENDAAL | Sharon | NED +-- A00622 | AUBRY | David | FRA +-- A05189 | KLEIN | Lisa | GER +-- A03293 | GANNA | Filippo | ITA +-- A11041 | WELLBROCK | Florian | GER +-- A03991 | HAVIK | Yoeri | NED + +-- Question 9 +SELECT a.code, a.nom, a.prenom, a.pays +FROM Athlete a, Resultat r +WHERE a.code = r.athlete +GROUP BY a.code, a.nom, a.prenom, a.pays +HAVING count(r.athlete) = 4; + +-- code | nom | prenom | pays +-- --------+---------+----------+------ +-- A11582 | ZHANG | Yufei | CHN +-- A09215 | SCOTT | Duncan | GBR +-- A10225 | TITMUS | Ariarne | AUS +-- A06581 | McKEOWN | Kaylee | AUS +-- A05668 | LEDECKY | Kathleen | USA + +-- Question 10 +SELECT e.discipl, count(athlete) +FROM Athlete a, Resultat r, Epreuve e +WHERE a.code = r.athlete AND r.epreuve = e.code AND '2021-07-23' - a.dateNaiss < 18 * 365 +GROUP BY e.discipl +HAVING count(a.*) >= 3; + +-- discipl | count +-- ---------+------- +-- GAR | 5 +-- DIV | 4 +-- SKB | 5 +-- SWM | 9 + +-- Question 11 +SELECT p.nom, count(a.*) +FROM pays p, Athlete a +WHERE p.code = a.pays +GROUP BY p.nom +HAVING count(a.*) >= ALL(SELECT count(a.*) FROM pays p, Athlete a WHERE p.code = a.pays GROUP BY p.nom); + +-- nom | count +-- --------------------------+------- +-- United States of America | 633 + +-- Question 12 +SELECT a.nom, a.prenom, a.pays, count(m.place) +FROM Athlete a, Resultat r, Medaille m +WHERE a.code = r.athlete AND r.medaille = m.place +GROUP BY a.nom, a.prenom, a.pays +HAVING count(m.place) >= ALL(SELECT count(m.place) FROM Athlete a, Resultat r, Medaille m WHERE a.code = r.athlete AND r.medaille = m.place GROUP BY a.nom, a.prenom, a.pays); + +-- nom | prenom | pays | count +-- --------+--------+------+------- +-- McKEON | Emma | AUS | 7 \ No newline at end of file diff --git a/BDD/tp/BDDs2/tp1/tp02.pdf b/BDD/tp/BDDs2/tp1/tp02.pdf new file mode 100644 index 0000000..b365773 Binary files /dev/null and b/BDD/tp/BDDs2/tp1/tp02.pdf differ