Exercice 11
Nous allons travailler avec un dictionnaire d'étudiants contenant les informations suivantes : nom, âge et note. La colonne id est générée automatiquement par SQLite à l'aide de AUTOINCREMENT.
1 2 3 4 5 6 7 |
students = [ {"name": "Adam", "age": 20, "note": 18}, {"name": "Robert", "age": 22, "note": 15}, {"name": "Nathalie", "age": 19, "note": 20}, {"name": "Rachid", "age": 21, "note": 12}, {"name": "Majid", "age": 23, "note": 17} ] |
Partie 1 : Création de la base de données et insertion des données
1) - Ecrire un code python SQLite qui permet de créer une base de données SQLite appelée students contenant une une table nommée students.
- La table doit avoir les colonnes suivantes : id, name, age, note.
- La colonne id : doit être doit avoir la propriété AUTOINCREMENT, ce qui permet à SQLite de gérer les identifiants automatiquement.
2) - Insérez les données du dictionnaire students dans la table students.
Partie 2 : Exécution des requêtes
- Affichez tous les étudiants dans la table students.
- Affichez les étudiants dont la note est supérieure à 15.
- Mettez à jour la note de l'étudiant nommé "Rachid" pour qu'elle soit égale à 19.
- Supprimez l'étudiant nommé "Majid" de la table.
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
import sqlite3 # Données initiales students = [ {"name": "Adam", "age": 20, "note": 18}, {"name": "Robert", "age": 22, "note": 15}, {"name": "Nathalie", "age": 19, "note": 20}, {"name": "Rachid", "age": 21, "note": 12}, {"name": "Majid", "age": 23, "note": 17} ] # Étape 1 : Connexion et création de la table conn = sqlite3.connect("students.db") cursor = conn.cursor() # Création de la table avec id AUTO_INCREMENT cursor.execute(""" CREATE TABLE IF NOT EXISTS students ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, note INTEGER ) """) # Étape 2 : Insérer les données for student in students: cursor.execute(""" INSERT INTO students (name, age, note) VALUES (?, ?, ?) """, (student["name"], student["age"], student["note"])) conn.commit() # Étape 3 : Requêtes # 1. Afficher tous les étudiants print("Tous les étudiants :") cursor.execute("SELECT * FROM students") for row in cursor.fetchall(): print(row) # 2. Étudiants avec une note > 15 print("\nÉtudiants avec une note > 15 :") cursor.execute("SELECT * FROM students WHERE note > 15") for row in cursor.fetchall(): print(row) # 3. Mettre à jour la note d'un étudiant cursor.execute("UPDATE students SET note = 19 WHERE name = 'Rachid'") conn.commit() print("\nRachid après mise à jour de sa note :") cursor.execute("SELECT * FROM students WHERE name = 'Rachid'") print(cursor.fetchone()) # 4. Supprimer un étudiant cursor.execute("DELETE FROM students WHERE name = 'Majid'") conn.commit() print("\nÉtudiants après suppression de Majid :") cursor.execute("SELECT * FROM students") for row in cursor.fetchall(): print(row) # Étape 4 : Fermer la connexion conn.close() |
Younes Derfoufi
CRMEF OUJDA