TP3 - Manipuler avec python
- Manipuler des requêtes SQL;
- Comprendre les fonctions d'agrégation;
- Utiliser les BDD en programmation.
- Se créer un dossier
Terminale NSI
sur votre ordinateur ou clé USB - Dans ce dossier, créer un dossier
BDD
- Enregistrer le code python ainsi que la base dans ce dossier.
Tutoriel
SQLite
est un moteur de base de données léger intégré à Python. La bibliothèque sqlite3
permet de gérer des bases de données SQL sans nécessiter un serveur externe.
Importer sqlite3 et créer une base de données
SQLite crée automatiquement un fichier de base de données s'il n'existe pas encore.
import sqlite3
# Connexion à la base de données
conn = sqlite3.connect('ma_base_de_donnees.db')
# Création d'un curseur pour exécuter des requêtes SQL
cursor = conn.cursor()
print("Base de données connectée avec succès.")
Créer une table
On va créer une table appelée utilisateurs
avec des colonnes id
, nom
, et age
:
# Création de la table
cursor.execute('''
CREATE TABLE IF NOT EXISTS utilisateurs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT NOT NULL,
age INTEGER
)
''')
print("Table 'utilisateurs' créée.")
Dans cette requête, la première ligne indique que l'on crée une table SI celle-ci n'existe pas.
- id, de type
integer
, en clé primaire (primary key
) avec en plus la valeurautoincrement
; - nom, de type
text
qui ne doit pas être vide ; - age de type
integer
.
On rajoute à la fin de la requête :
foreign key(attribut_cle_etrangere) references table_cle_primaire(attribut_cle_primaire) on update cascade on delete cascade,
On indique la création d'une clé étrangère, en précisant dans les parenthèses l'attribut clé étrangère, faisant référence à l'attribut clé primaire
, en précisant sa table d'origine.
on update cascade on delete cascade permette de supprimer ou de mettre à jour des données dans la table s'il y a du changement au niveau de la clé primaire.
Insérer des données
cursor.execute('''
INSERT INTO utilisateurs (nom, age)
VALUES ('Alice', 30), ('Bob', 25), ('Charlie', 35)
''')
# Sauvegarder les modifications
conn.commit()
print("Données insérées avec succès.")
Lire des données
cursor.execute('SELECT * FROM utilisateurs')
utilisateurs = cursor.fetchall()
print("Liste des utilisateurs :")
for utilisateur in utilisateurs:
print(utilisateur)
La variable utilisateurs
devient une matrice que l'on peut parcourir avec une boucle. Chaque élément de la liste contient un tuple
contenant les éléments sélectionnés par la requête SQL.
Mettre à jour des données
cursor.execute('''
UPDATE utilisateurs
SET age = 40
WHERE nom = 'Alice'
''')
conn.commit()
print("Données mises à jour.")