Académique Documents
Professionnel Documents
Culture Documents
import sqlite3
def BDDconnect ( bdd ):
return sqlite3 . connect ( bdd )
# Exercice 1
Ex1_1 = SELECT MIN ( ab * ac * bc ) FROM triangles WHERE ab + bc + ac >=100
Ex1_2 = """ SELECT ab , ac , bc FROM triangles WHERE ab + bc + ac >=100
AND ab * ac * bc IN ( SELECT MIN ( ab * ac * bc ) FROM triangles WHERE ab + bc + ac >=100) """
Ex1_3 = SELECT * FROM triangles WHERE ab * ab + ac * ac = bc * bc
Ex1_4 = SELECT COUNT (*) FROM triangles WHERE ab * ab + ac * ac = bc * bc
Ex1_5 = SELECT MAX ( ab + bc + ac ) FROM triangles WHERE ab * ab + ac * ac = bc * bc
Ex1_6 = SELECT * FROM triangles WHERE ab = ac AND ab = bc
Ex1_7 = SELECT * FROM triangles WHERE ( ab + bc + ac )/3.0 = 42
1
# Exercice 2
Ex2_1 = " " " SELECT C . nom , D . nom , R . nom , C . pop FROM communes AS C
JOIN departements AS D ON C . dep = D . id JOIN regions as R
ON R . id = D . reg " " "
Ex2_2 = " " " SELECT C . nom , D . nom , R . nom , C . pop FROM communes AS C
JOIN departements AS D ON C . dep = D . id JOIN regions as R
ON R . id = D . reg ORDER BY C . pop DESC " " "
Ex2_3 = " " " SELECT count ( C . nom ) FROM communes AS C
WHERE C . pop >= ( SELECT pop FROM communes WHERE nom = Strasbourg ) " " "
Ex2_4 = SELECT nom , pop FROM communes WHERE nom LIKE " Pa % is "
Ex2_5 = SELECT nom , pop FROM communes WHERE LENGTH ( nom ) > pop
# Exercice 3
Ex3_1 = " SELECT * FROM prenoms WHERE prenom = Abdallah ORDER BY annee "
Ex3_2 = " " " SELECT annee , COUNT ( DISTINCT prenom ) FROM prenoms
GROUP BY annee " " "
Ex3_3 = SELECT prenom FROM prenoms GROUP BY prenom HAVING SUM ( nombre ) = 100
Ex3_4 = " " " SELECT prenom , SUM ( nombre ) AS total FROM prenoms
GROUP BY prenom ORDER BY total DESC LIMIT 1 " " "
Ex3_5 = SELECT prenom , annee , MAX ( nombre ) FROM prenoms GROUP BY annee
2
de la p
e riode ( on donnera aussi le nombre de fois qu il a e t
e donn
e )""")
SQLquery ( Ex3_4 , conn )
print ( " " " Pour chaque ann
e e , donner le pr e nom , l ann
ee
et le nombre de fois que ce pr e nom a
e t
e donne """)
SQLquery ( Ex3_5 , conn )
BDDclose ( conn )
# Exercice 4
Ex4_1 = SELECT nom FROM profs
Ex4_2 = SELECT COUNT (*) FROM colles WHERE note =20
Ex4_3 = " " " SELECT note FROM colles , eleves WHERE eleve = ide
AND nom = Lions ORDER BY semaine " " "
Ex4_3p = " " " SELECT note FROM colles JOIN eleves ON eleve = ide
WHERE nom = Lions ORDER BY semaine " " "
Ex4_4 = " " " SELECT e . nom , p . nom , note , semaine FROM colles JOIN eleves AS e
ON eleve = ide JOIN profs AS p ON prof = idp WHERE note >= 19 " " "
Ex4_5 = " " " SELECT AVG ( note ) FROM colles JOIN eleves AS e ON eleve = ide
WHERE nom = Lions " " "
Ex4_6 = " " " SELECT nom FROM ( SELECT eleve FROM
( SELECT eleve , COUNT (*) AS nb FROM colles WHERE note < 10
GROUP BY eleve ) WHERE nb >= 10) JOIN eleves AS e ON eleve = ide " " "
Ex4_7 = " " " SELECT nom FROM ( SELECT eleve FROM
( SELECT eleve , COUNT (*) AS nb FROM colles WHERE note > 18
GROUP BY eleve ) WHERE nb >= 6) JOIN eleves AS e ON eleve = ide " " "
Ex4_8 = " " " SELECT nom , AVG ( note ) FROM colles JOIN eleves AS e
ON eleve = ide GROUP BY nom ORDER BY AVG ( note ) " " "
Ex4_9 = " " " SELECT nom FROM colles JOIN profs ON prof = idp
GROUP BY nom ORDER BY AVG ( note ) DESC LIMIT 1 " " "
Ex4_10 = " " " SELECT nom , AVG ( note ) AS moyenne ,
AVG ( note * note ) - AVG ( note )* AVG ( note ) AS variance FROM colles
JOIN profs ON prof = idp GROUP BY nom " " "
Ex4_11 = " " " SELECT AVG ( moyenne ) FROM ( SELECT AVG ( note ) AS moyenne
FROM colles JOIN eleves AS e ON eleve = ide GROUP BY nom ) " " "
3
SQLquery ( Ex4_7 , conn )
print ( " la liste des couples ( e l`
e ve , moyenne ) " )
SQLquery ( Ex4_8 , conn )
print ( " " " le nom du colleur qui tend ` a donner les meilleurs notes en moyenne
SQLquery ( Ex4_9 , conn )
print ( " pour chaque colleur la moyenne des notes donn e es et la variance " )
SQLquery ( Ex4_10 , conn )
print ( " la moyenne des moyennes des e l`
e ves " )
SQLquery ( Ex4_11 , conn )
BDDclose ( conn )
TrianglesTest ()
CommunesTest ()
PrenomsTest ()
CollesTest ()