0% ont trouvé ce document utile (0 vote)
3 vues8 pages

Chapitre2-Programmation Python Avancée - BD - SQLite

Ce document présente un cours sur la programmation avancée en Python avec un accent sur la conception et la gestion des bases de données à l'aide de SQLite. Il couvre l'installation de SQLite, les types de données, les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) et fournit des exemples de code pour manipuler les bases de données. En outre, il propose un exercice pratique pour créer une application de gestion de stock.

Transféré par

jaouadi amine
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues8 pages

Chapitre2-Programmation Python Avancée - BD - SQLite

Ce document présente un cours sur la programmation avancée en Python avec un accent sur la conception et la gestion des bases de données à l'aide de SQLite. Il couvre l'installation de SQLite, les types de données, les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) et fournit des exemples de code pour manipuler les bases de données. En outre, il propose un exercice pratique pour créer une application de gestion de stock.

Transféré par

jaouadi amine
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Bouebdelli University Année Universitaire

5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

L A
Programmation Python Avancée

FA
Chapitre2 : Conception et gestion des bases de données

ER
avec SQLite

Objectif : GU
 Créer et configurer des bases de données SQLite avec Python pour stocker et
organiser des données structurées dans des fichiers locaux.
ajih

 Manipuler les données via des requêtes SQL depuis Python : insertion,
consultation, modification et suppression d'enregistrements.
 Gestion des erreurs des bases de données SQLite.
dW

1 – Introduction sur les bases de données


Une base de données ( database en Anglais) est un conteneur dans lequel il est possible
me

de stocker des données de façon structurée. Cette structure permet au programme


informatique connecté à celle-ci de faire des recherches complexes.
Il existe plusieurs Modules et Logiciels de programmation base de données compatible
ha

avec le langage de programmation Python tels que MySQL, SQLite3, SQLAlchemy,


ORACLE, SQLServer.
Mo

Mohamed Wajih GUERFALA


1
Bouebdelli University Année Universitaire
5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

Dans ce chapitre, nous allons se limiter sur le module SQLite3 dans nos applications qui
suit. SQLite3 est un module de conception et gestion des bases de données compatible

A
avec Python. L'un des avantages de SQLite3 est sa portabilité sur les OS les plus utilisés

L
par le grand public (Linux, Microsoft et Mac). Les domaines d’applications du
module SQLite3:

FA
 Applications mobiles (iOS, Android)
 Prototypage rapide et développement local
 Applications embarquées et IoT

ER
2- Installation du Package SQLite & Logiciel SQLiteBrowser
Dans le OS Debian de la carte Raspberry Pi, il faut installer la bibliothèque " SQLite 3 "

GU
à travers l'interpréteur de commandes "LX Terminal".

sudo apt-get update


sudo apt-get install sqlite3
ajih

Il faut installer aussi le logiciel de gestion graphique des bases des données " SQLite
browser" comme suit :
dW

sudo apt-get install sqlitebrowser

3- Types de données SQLite et Python


me

SQLite supporte nativement les types suivants: NULL, INTEGER, REAL, TEXT, LPOB.
Voici un tableau qui récapitule la correspondance de types de données entre SQLite et
Python.
Python SQLite
ha

None NULL
int INTEGER/INT
Mo

float REAL/FLOAT
str TEXT/VARCHAR(n)
bytes BLOB

Mohamed Wajih GUERFALA


2
Bouebdelli University Année Universitaire
5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

4 – Fonctions de création d’une base de données


4–a Fonctions de Base

A
Le langage de programmation SQL comporte un ensemble de fonctions de base pour la

L
création, connexion, exécution de commandes SQL et en fin, Validation et Annulation de

FA
ces commandes :

# Importez le module SQLite


import sqlite3

ER
# Création & connexion de bases de données SQLite :
# Les données seront stockées dans le fichier « [Link] »
conn = [Link]('[Link]')
# Créer une base de données temporaire en RAM
conn = [Link](':memory:')

GU
# Création d’un curseur d’exécution de commandes SQL
cursor = [Link]()
# Exécution de la requete (une ligne de commande SQL)
[Link](req)
# Exécution de la requete (multiples lignes de commandes SQL)
ajih
[Link](req)
# Validation des Transactions en cours
[Link]()
# Annulation des Transactions effectuées
[Link]()
dW

# Ferme la connexion à la base de données


[Link]()

4–b Création d’une table SQLite


La création d’une table dans une base de données se fait comme suit avec la commande
me

SQL « CREATE TABLE »

import sqlite3
conn = [Link]('[Link]')
ha

cursor = [Link]() # Créer un cursor


# Creation d’une Table dans la base de données
[Link]('''CREATE TABLE students
(Id INT PRIMARY KEY NOT NULL,
Mo

Name TEXT NOT NULL,


Age INT NOT NULL,
Class TEXT,
ScoreExam REAL);''')
[Link]() # Envoyer la requête
[Link]() # Fermer la connexion

Mohamed Wajih GUERFALA


3
Bouebdelli University Année Universitaire
5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

4–c Suppression d’une table SQLite


La suppression d’une table dans une base de données se fait comme suit avec la

A
commande SQL « DROP TABLE »

L
# -*- coding: utf-8 -*-

FA
import sqlite3
conn = [Link]('[Link]')
cursor = [Link]() # Créer un cursor
# Supprimer une Table existant de la base de données

ER
[Link]('DROP TABLE students')

[Link]() # Envoyer la requête


[Link]() # Fermer la connexion

4–d Modification d’une table SQLite


GU
Pour modifier une table existante dans une base de données, il est possible d'ajouter ou
de supprimer une colonne en utilisant les commandes SQL « ADD TABLE » et « DROP
TABLE »
ajih

# -*- coding: utf-8 -*-


import sqlite3
conn = [Link]('[Link]')
cursor = [Link]() # Créer un cursor
dW

# Modifier une Table existant dans la base de données


# Ajouter une colonne dans une Table existante
[Link]('ALTER TABLE students ADD COLUMN School TEXT')
# Supprimer une colonne dans une Table existante
[Link]('ALTER TABLE students DROP COLUMN School')
me

[Link]() # Envoyer la requête


[Link]() # Fermer la connexion

5 – Fonctions de gestion d’une base de données CRUD


ha

Les fonctions CRUD représentent les quatre opérations fondamentales de gestion des
données dans une base de données. CREATE permet d'ajouter de nouveaux
Mo

enregistrements via la commande INSERT, construisant ainsi le contenu initial de la


base. READ regroupe les fonctions de consultation et d'extraction des données
existantes à l'aide des commandes SELECT et des méthodes de fetch.

Mohamed Wajih GUERFALA


4
Bouebdelli University Année Universitaire
5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

UPDATE offre la possibilité de modifier des enregistrements déjà présents dans les
tables, corrigeant ou actualisant ainsi les informations stockées. Enfin, DELETE permet

A
de supprimer définitivement des enregistrements devenus obsolètes ou erronés.

L
Ensemble, ces quatre opérations forment le cycle complet de vie des données au sein
d'un système de gestion de base de données.

FA
5–a Insertion des données par «INSERT Operation»
Insertion d’une ligne de données dans une table SQLite se fait comme suit par la

ER
fonction de curseur « execute »

import sqlite3
conn = [Link]('[Link]')
cursor = [Link]() # Créer un cursor
# Insertion d’une ligne de données
GU
[Link]("INSERT INTO students (Id, Name, Age, Class, ScoreExam) \
VALUES (1, 'Ahmed', 22, '5GEII_GA', 15.00 )");
[Link]("INSERT INTO students (Id, Name, Age, Class, ScoreExam) \
ajih
VALUES (2, 'Malek', 23, '5GEII_GA', 16.00 )");
[Link]("INSERT INTO students (Id, Name, Age, Class, ScoreExam) \
VALUES (3, 'Imen', 22, '5GEII_GA', 15.5 )");
[Link]() # Envoyer la requête
dW

[Link]() # Fermer la connexion

Insertion Multiple Lignes de données dans une table SQLite se fait comme suit par la
fonction de curseur « executemany »
import sqlite3
me

conn = [Link]('[Link]')
cursor = [Link]() # Créer un cursor

# Insert Multiple records using the more secure "?" method


ha

StudentsInfo = [(4, 'Sarra', 22, '5GEII_GB', 14.5 ),


(5, 'Zied', 23, '5GEII_GB ', 13.75 ),
(6, 'Marwen', 24, '5GEII_GB ', 16.75 )]
[Link]("INSERT INTO students VALUES (?,?,?,?,?)",
Mo

StudentsInfo)

[Link]() # Envoyer la requête


[Link]() # Fermer la connexion

Mohamed Wajih GUERFALA


5
Bouebdelli University Année Universitaire
5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

5–b Affichage des données «SELECT Operation»


Affichage des données d’une table SQLite se fait comme suit par la commande SQL

A
« SELECT »

L
import sqlite3
conn = [Link]('[Link]')

FA
cursor = [Link]() # Créer un cursor
# SELECT Operation
rowsST = [Link]("SELECT Id, Name, Age, Class, ScoreExam FROM
students")

ER
#rowsST = [Link]("SELECT * from students")
for row in rowsST:
print("Id = ", row[0])
print("Name = ", row[1])
print("Age = ", row[2])
print("Class = ", row[3])
print("ScoreExam = ", row[4], "\n")
[Link]()
[Link]()
# Envoyer la requête
# Fermer la connexion
GU
Il y a d'autres façons de sélectionner les données à afficher pour l'utilisateur, comme
ajih

« fetchone» et « fetchall»
[Link]() : Récupère une seule ligne à la fois depuis les résultats de la requête.
Idéal pour traiter les données ligne par ligne, surtout avec de gros volumes de données.
dW

[Link]() : Récupère toutes les lignes d'un coup sous forme de liste. Pratique
pour les petits jeux de données, mais attention à la consommation mémoire avec de gros
résultats.

import sqlite3
me

conn = [Link]('[Link]')
cursor = [Link]()

# SELECT Operations Diverses


[Link]("""SELECT Id, Name FROM students WHERE id=2""")
ha

response = [Link]()
print(response)
[Link]("""SELECT Id, Name, ScoreExam FROM students""")
rows = [Link]()
Mo

print(rows)
for row in rows:
print('{0} : {1} - {2}'.format(row[0],row[1], row[2]))

[Link]() # Envoyer la requête


[Link]() # Fermer la connexion

Mohamed Wajih GUERFALA


6
Bouebdelli University Année Universitaire
5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

5–c Mise à jour des données par «UPDATE Operation»


Mise à jour des données d’une table SQLite se fait comme suit par la commande SQL

A
« UPDATE »

L
import sqlite3

FA
conn = [Link]('[Link]')
cursor = [Link]() # Créer un cursor

# UPDATE Operation
[Link]("UPDATE students SET ScoreExam = 15.0 WHERE Id = 1")

ER
[Link]() # Envoyer la requête
[Link]() # Fermer la connexion

GU
5–d Suppression des données par «DELETE Operation»
Suppression des données d’une table SQLite se fait comme suit par la commande SQL
« DELETE »

import sqlite3
ajih

conn = [Link]('[Link]')
cursor = [Link]() # Créer un cursor

# UPDATE Operation
[Link]("DELETE FROM students WHERE ID = 6;" )
dW

[Link]() # Envoyer la requête


[Link]() # Fermer la connexion

Exercice 1 :
me

Creer une Application SQL de gestion de stock d’un Magasin « TP1_Stock_Mag.py ».


Pour la gestion de stocks des produits dans ce Magasin, il faut creer une base de
donnees appelee « DB_StockMag.db » qui comporte deux Tables appelees « Products »
ha

et « StockProducts ».
Parametres de deux Tables sont les suivantes:
Mo

« Products »:
(productId INT PRIMARY KEY, Name  TEXT, Ref TEXT, Price  REAL)
« StockProducts »:
(stockId  INT PRIMARY KEY, product_id  INT, Quantity  INT)

Mohamed Wajih GUERFALA


7
Bouebdelli University Année Universitaire
5éme Année Ingénieur Génie Elect. et Inf. Ind. 2025-2026

Remarque: Pour faire la liaison entre les deux Tables, nous allons utiliser un Forgien
Key dans la seconde Table « StockProducts » comme suit :

A
 FOREIGN KEY (product_id) REFERENCES products (productId)

L
1) Apres la creation des deux Tables dans la base de donnees, Remplissez ces tables
par les donnees relatives a chaque table.

FA
2) Afficher les donnees de chaque table sur l’invite de commande,
3) Faire la mise a jour d’une Donnee « Quantity » d’un produit dans la table
StockProducts ,

ER
4) Effacer le produit ou le « productId == 3 » dans la table Products,

GU
ajih
dW
me
ha
Mo

Mohamed Wajih GUERFALA


8

Vous aimerez peut-être aussi