Exercice 7
1) - Donner la requete sql permettant de créer au sein d'une base de données 'database.db' une table SQLite nommée 'laptop' ayant les attributs suivants:
- id : clé primaire autoincrement,
- brand : du type texte,
- ram : du type entier,
- processor : du type texte.
Donner ensuite le code complet en python.
2) - Donner la requete qui permet d'altérer la table 'laptop' en ajoutant à la fin un attribut nommé 'price' du type entier.
3) - Donner le code Python pour insérer les données:
data = [('Lenovo', 12, 'Core i7', 550), ('HP', 8, 'Core i7', 350), ('DELL', 16, 'Core i7', 700), ('Acer', 8, 'Core i3', 300), ('Asus', 12, 'Core i7', 450), ]
4) Donner le code python qui affiche les données
Solution
Question 1 : Création de la table SQLite 'laptop'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import sqlite3 # create a connection conn = sqlite3.connect("database.db") # create a cursor cursor = conn.cursor() # request to create a table laptop req = """CREATE TABLE IF NOT EXISTS laptop ( id INTEGER PRIMARY KEY AUTOINCREMENT, brand TEXT, ram INTEGER, processor TEXT )""" # exute request cursor.execute(req) # send request conn.commit() conn.close() |
Question 2 : Altération de la table 'laptopo'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import sqlite3 # create a connection conn = sqlite3.connect("database.db") # create a cursor cursor = conn.cursor() # request to create a table laptop req = """ALTER TABLE laptop ADD COLUMN price INTEGER""" # exute request cursor.execute(req) # send request conn.commit() conn.close() |
Question 3 : Insertion des données.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import sqlite3 # create a connection conn = sqlite3.connect("database.db") # create a cursor cursor = conn.cursor() data = [('Lenovo', 12, 'Core i7', 550), ('HP', 8, 'Core i7', 350), ('DELL', 16, 'Core i7', 700), ('Acer', 8, 'Core i3', 300), ('Asus', 12, 'Core i7', 450), ] # request to insert data for row in data: req = """INSERT INTO laptop (brand, ram, processor, price) VALUES (?, ?, ?, ?)""" cursor.execute(req, (row[0], row[1], row[2], row[3])) # send request conn.commit() conn.close() |
Question 4 : Affichage des données
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 |
import sqlite3 # create a connection conn = sqlite3.connect("database.db") # create a cursor cursor = conn.cursor() req = "SELECT * FROM laptop" cursor.execute(req) data = cursor.fetchall() # send request conn.commit() conn.close() # display data for row in data: print((row[0], row[1], row[2], row[3])) """ output: (1, 'Lenovo', 12, 'Core i7') (2, 'HP', 8, 'Core i7') (3, 'DELL', 16, 'Core i7') (4, 'Acer', 8, 'Core i3') (5, 'Asus', 12, 'Core i7') """ |
Younes Derfoufi
CRMEF OUJDA