Python et SQL





Aller à Lire des données, créer une base, modifier des données, clés d’enregistrement, ajouter une colonne

DB Browser for SQLite

La « version light » de SQL adoptée est sqlite3.
Pour accéder aux tables de la base de données, on télécharge DB Browser for SQLite à partir de https://sqlitebrowser.org.

Les opérations de base (création de bases, tables, ajout/suppression d’enregistrements, écriture/exécution de requêtes SQL) sont directement accessibles.
 

 
A l’intérieur d’un script, la connexion avec un fichier SQL (extension .db) s’effectue via le modules sqlite3

 

Lecture de données

Une fois la connexion établie, la méthode read_sql de pandas extrait les données d’une table en lui passant une instruction SQL au format texte (str), suivie par le nom donné à la connexion comme second argument.
Dans l’exemple suivant, la base de données s’appelle PandasTest et la table GroupePop

Les commandes SQL peuvent être passées sur plusieurs lignes en utilisant le caractère de changement de ligne ‘\’ propre à Python

Création d’une base de données à partir de Python

Pour créer dynamiquement une base de données SQL dans un script, on écrit directement

conn=sqlite3.connect(‘/Chemin d’accès/nom de la base’)

Le chemin d’accès, s’il est sur le même drive, part du répertoire de travail. Par exemple,


 
Pour ajouter une table à la base de données, on commence par créer une instance de la classe cursor. Dans l’exemple suivant, on donne à notre instance le même nom que la classe.

 
La méthode execute va servir à passer des instructions SQL à la base de données (ici TestSQL.db). La requête est CREATE et les paramètres sont les champs (ou intitulés de colonne) de la table suivis de leur format (text, real,…)

 
Pour ajouter des enregistrements dans une table, on passe la requête INSERT à la méthode execute. Pour que la table se mette effectivement à jour, lancer la méthode commit de l’objet conn.


 
Pour vérifier que tout s’est bien passé, on ouvre DB Browser
 

 

 
Pour ajouter plusieurs enregistrements à la fois, on passe les valeurs séparées par une virgule

Modification des données

L’ajout d’enregistrements a été vu au-dessus.
Pour supprimer une ligne, la requête utilisée est DELETE suivie éventuellement de conditions WHERE condition1 (AND/OR) condition2
 

 

La requête UPDATE est utilisée pour modifier un enregistrement. La commande SET est suivie du (ou des) nom(s) de colonne(s) à changer et la (ou les) ligne(s), et de WHERE pour désigner la (ou les) ligne(s) concernée(s).


 

Créer une clé pour chaque enregistrement

Généralement, un enregistrement est identifié de manière unique par une clé, mais celle-ci n’est pas créée automatiquement en même temps que la table: pour ajouter la colonne correspondante, il faut créer une autre table en précisant que chaque ligne commencera par un identifiant unique

Dans notre exemple, cette table s’appellera ‘trades’: elle a la même structure que la table ‘portfolio’, et recevra les données de celle-ci

 
On enregistre les données de ‘portfolio’ dans ‘trades’

 
On supprime la table ‘portfolio’ et on renomme ‘trades’ ‘portfolio’.


 


 

Ajout d’une colonne


 

 
Pour enregistrer une valeur commune dans la colonne nouvellement créée (‘market’)