From bbd426cb53fbf03443f5bd8eac6d3cdc0b297bb8 Mon Sep 17 00:00:00 2001 From: lolaborie Date: Wed, 17 May 2023 08:31:18 +0200 Subject: [PATCH] Ajout script visualisation SQL --- manipSQL.py | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 manipSQL.py diff --git a/manipSQL.py b/manipSQL.py new file mode 100644 index 0000000..6c7b011 --- /dev/null +++ b/manipSQL.py @@ -0,0 +1,62 @@ +import pandas as pd +import psycopg2 as pg +import subprocess as sp +import matplotlib.pyplot as plt + + + +# nom = input("Nom d'utilisateur : ") +# print(nom) +# util = 'db' + nom +# print(util) +sp.run(["stty", "-echo"]) + + +mdp = input("Le mot de passe stp : ") + + +sp.run(["stty", "echo"]) + +co = None +try: + # Connexion à la base + # Attention ! pensez à remplacer dblogin , login et mot_de_passe + #avec vos informations + co = pg.connect(host='londres', + database ='dblolaborie', + user='lolaborie', + password = mdp) + + df = pd.read_sql('''SELECT p.nomR,avg(s.gscore) as Moyenne_Score_Global_Region + FROM Statistique s, Pays p, Region r + WHERE s.codeP = p.code AND p.nomR = r.nom AND s.annee = '2021' + GROUP BY p.nomR;''', con=co) # Score moyen global par région en 2021 + fig = df.plot(x='nomr', y='moyenne_position_region') + fig.set_title('Score moyen global par région en 2021') + fig.set_xlabel('Région') + fig.set_ylabel('Score moyen (sur 100)') + plt.show() # Affichage + df = pd.read_sql('''SELECT p.nom, s.gscore, s.annee + FROM Statistique s, Pays p + WHERE s.codeP = p.code AND s.gscore = (SELECT min(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le moins élevé par année + print(df) + df = pd.read_sql('''SELECT p.nom, s.gscore, s.annee + FROM Statistique s, Pays p + WHERE s.codeP = p.code AND s.gscore = (SELECT max(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le plus élevé par année + print(df) + df = pd.read_sql('''SELECT p.nomR, s.gscore, s.annee + FROM Statistique s, Pays p + WHERE s.codeP = p.code AND s.gscore = (SELECT min(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le moins élevé par année + print(df) + df = pd.read_sql('''SELECT p.nomR, s.gscore, s.annee + FROM Statistique s, Pays p + WHERE s.codeP = p.code AND s.gscore = (SELECT max(gscore) FROM Statistique s1 WHERE s1.annee = s.annee);''', con=co) # Pays ayant le score global le plus élevé par année + print(df) + +# Affichage du message d'erreur en cas de probl ème de connexion +except(Exception, pg.DatabaseError) as error : + print(error) +# Attention ! Toujours fermer la connexion lorsqu 'on en a plus besoin +finally: + if co is not None: + co.close() \ No newline at end of file