Envoi de requêtes à la base de données en Python
Après la connexion à la base de données, il est possible
de lui envoyer des requêtes. Cela se fait à l'aide
de la variable query, dans laquelle
est écrite la requête SQL pour afficher toutes
les données de la table users. Cette
variable doit être écrite dans le bloc avec
la variable connection :
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
except Error as e:
print(e)
Ensuite, nous écrivons une autre construction with
pour travailler avec l'objet MySQLConnection,
stocké dans la variable connection.
À cet objet, il faut appliquer séquentiellement
des méthodes spéciales. La première d'entre
elles est la méthode cursor, qui
crée un objet CMySQLCursor à partir de l'objet MySQLConnection.
À celui-ci, à son tour, est appliquée la méthode execute, qui
assure l'exécution de la requête SQL,
transmise en paramètre :
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
Ensuite, il faut extraire toutes les données à l'aide
de la méthode fetchall et les enregistrer dans
la variable result. Et pour afficher
les données obtenues, il faut les passer
dans une boucle for :
try:
with connect(
...
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
Le code complet ressemblera à ceci :
try:
with connect(
host='localhost',
user='root',
password='',
database='test',
) as connection:
query = "SELECT * FROM users"
with connection.cursor() as cursor:
print(cursor)
cursor.execute(query)
result = cursor.fetchall()
for row in result:
print(row)
except Error as e:
print(e)
Après l'exécution du code, toutes les entrées s'afficheront dans la console sous forme de tuples :
(1, 'user1', 23, 400)
(2, 'user2', 25, 500)
(3, 'user3', 23, 500)
(4, 'user4', 30, 900)
(5, 'user5', 27, 500)
(6, 'user6', 28, 900)
Affichez toutes les données de la table users.