Guide de débutant pour l'interface PostgreSQL - Python
Salut à toi, futur mage des bases de données ! Je suis ravi de devenir ton guide sur ce voyage passionnant dans le monde de PostgreSQL et Python. En tant que quelqu'un qui enseigne l'informatique depuis des années, je peux te dire que cette combinaison est comme du beurre de cacahuète et de la gelée - simplement délicieux ! Alors, mettons nos manches et plongeons dedans !
Installation
Avant de pouvoir commencer à faire de la magie, nous devons configurer nos outils. Pense à cela comme préparer ta cuisine avant de cuisiner un repas gastronomique.
-
Tout d'abord, assure-toi que PostgreSQL est installé sur ton ordinateur. Tu peux le télécharger depuis le site officiel de PostgreSQL.
-
Ensuite, nous devons installer le module Python qui nous permettra de communiquer avec PostgreSQL. Ouvre ton terminal ou invite de commande et tape :
pip install psycopg2
Cette commande est comme demander à ton ordinateur d'ajouter un nouvel outil à sa boîte à outils. Une fois cela fait, tu es prêt à partir !
API du module Python psycopg2
Maintenant que nous avons nos outils, penchons-nous rapidement sur ce qu'ils peuvent faire. Le module psycopg2 nous fournit un ensemble de fonctions pour interagir avec PostgreSQL. Voici un tableau des plus courantes :
Fonction | Description |
---|---|
connect() | Établit une connexion à la base de données |
cursor() | Crée un objet curseur pour exécuter des commandes SQL |
execute() | Exécute une opération de base de données (requête ou commande) |
fetchone() | Récupère la prochaine ligne d'un jeu de résultats de requête |
fetchall() | Récupère toutes (les restantes) lignes d'un jeu de résultats de requête |
commit() | Valide la transaction en cours |
rollback() | Reviens au début de toute transaction en attente |
close() | Ferme la connexion à la base de données |
Ne t'inquiète pas si cela semble comme une langue étrangère pour le moment. Nous explorerons chacun de ces éléments en détail au fur et à mesure !
Connexion à la base de données
Commençons par établir une connexion à notre base de données. C'est comme frapper à la porte et demander à entrer.
import psycopg2
try:
connection = psycopg2.connect(
database="mydb",
user="myuser",
password="mypassword",
host="localhost",
port="5432"
)
print("Connexion réussie !")
except (Exception, psycopg2.Error) as error:
print("Erreur lors de la connexion à PostgreSQL", error)
Dans ce code, nous :
- Importons le module psycopg2
- Utilisons la fonction
connect()
pour établir une connexion - Fournissons les détails nécessaires comme le nom de la base de données, l'utilisateur, le mot de passe, etc.
- Utilisons un bloc try-except pour gérer toute erreur potentielle
Si tout se passe bien, tu devrais voir "Connexion réussie !" affiché. Félicitations, tu viens d'ouvrir la porte à ta base de données !
Création d'une table
Maintenant que nous sommes dedans, créons une table pour stocker des données. Imagine que tu installes une étagère pour organiser tes livres.
try:
cursor = connection.cursor()
create_table_query = '''CREATE TABLE books
(ID INT PRIMARY KEY NOT NULL,
TITLE TEXT NOT NULL,
AUTHOR TEXT NOT NULL,
PUBLISHED_DATE DATE);'''
cursor.execute(create_table_query)
connection.commit()
print("Table créée avec succès !")
except (Exception, psycopg2.Error) as error:
print("Erreur lors de la création de la table", error)
finally:
if connection:
cursor.close()
connection.close()
print("Connexion PostgreSQL fermée")
Voici ce qui se passe :
- Nous créons un objet curseur, qui est comme notre assistant de base de données
- Nous définissons notre requête SQL pour créer une table nommée 'books'
- Nous utilisons
execute()
pour exécuter la requête - Nous
commit()
nos modifications pour les rendre permanentes - Enfin, nous fermons notre curseur et notre connexion pour être de bons citoyens de la base de données
Opération INSERT
Il est temps d'ajouter quelques livres à notre étagère ! Insérons un enregistrement dans notre table.
try:
cursor = connection.cursor()
insert_query = """ INSERT INTO books (ID, TITLE, AUTHOR, PUBLISHED_DATE)
VALUES (%s, %s, %s, %s)"""
record_to_insert = (1, "To Kill a Mockingbird", "Harper Lee", "1960-07-11")
cursor.execute(insert_query, record_to_insert)
connection.commit()
print("Enregistrement inséré avec succès")
except (Exception, psycopg2.Error) as error:
print("Erreur lors de l'insertion des données", error)
Dans ce code :
- Nous créons une requête INSERT avec des placeholders (%s) pour nos valeurs
- Nous définissons un tuple avec les valeurs que nous voulons insérer
- Nous exécutons la requête, en passant notre tuple de valeurs
- Nous validons les modifications
Opération SELECT
Maintenant, vérifions notre étagère et voyons ce que nous avons !
try:
cursor = connection.cursor()
select_query = "SELECT * from books"
cursor.execute(select_query)
records = cursor.fetchall()
for row in records:
print("ID:", row[0])
print("TITRE:", row[1])
print("AUTEUR:", row[2])
print("DATE DE PUBLICATION:", row[3], "\n")
except (Exception, psycopg2.Error) as error:
print("Erreur lors de la récupération des données", error)
Voici ce qui se passe :
- Nous créons une requête SELECT pour récupérer tous les enregistrements de notre table 'books'
- Nous exécutons la requête
- Nous utilisons
fetchall()
pour obtenir tous les résultats - Nous parcourons les résultats et affichons les détails de chaque livre
Opération UPDATE
Oups ! Nous avons fait une erreur. Mettons à jour un enregistrement pour le corriger.
try:
cursor = connection.cursor()
update_query = """Update books set AUTHOR = %s where ID = %s"""
cursor.execute(update_query, ("Nelle Harper Lee", 1))
connection.commit()
print("Enregistrement mis à jour avec succès")
except (Exception, psycopg2.Error) as error:
print("Erreur lors de la mise à jour des données", error)
Dans ce code :
- Nous créons une requête UPDATE avec des placeholders pour le nouveau nom de l'auteur et l'ID
- Nous exécutons la requête avec les nouvelles valeurs
- Nous validons les modifications
Opération DELETE
Enfin, apprenons comment supprimer un livre de notre étagère.
try:
cursor = connection.cursor()
delete_query = """Delete from books where ID = %s"""
cursor.execute(delete_query, (1,))
connection.commit()
print("Enregistrement supprimé avec succès")
except (Exception, psycopg2.Error) as error:
print("Erreur lors de la suppression des données", error)
finally:
if connection:
cursor.close()
connection.close()
print("Connexion PostgreSQL fermée")
Voici ce qui se passe :
- Nous créons une requête DELETE avec un placeholder pour l'ID
- Nous exécutons la requête avec l'ID de l'enregistrement que nous voulons supprimer
- Nous validons les modifications
- Enfin, nous fermons notre curseur et notre connexion
Et voilà ! Tu viens d'apprendre les bases de la manipulation de PostgreSQL avec Python. Souviens-toi, la pratique rend parfait, donc n'hesite pas à expérimenter et à essayer différentes choses. Bon codage, et puisses tes bases de données toujours être en parfait ordre !
Credits: Image by storyset