PSQL – Les commandes de base
Bonne lecture et bon apprentissage !
Junior TSAFACK – 20/08/2026
⏱️ Temps de lecture estimé : 7 minutes
psql est l’interface en ligne de commande officielle de PostgreSQL. C’est un outil extrêmement puissant qui permet d’exécuter des requêtes SQL, de gérer les bases de données et d’automatiser des tâches d’administration. Dans ce cours, vous apprendrez à vous connecter, à utiliser les commandes méta (backslash) et à manipuler vos premières bases et tables.
Connexion à PostgreSQL
Section titled “Connexion à PostgreSQL”Connexion par défaut
Section titled “Connexion par défaut”En tant qu’utilisateur postgres (le superutilisateur du système PostgreSQL) :
sudo -u postgres psqlCette commande utilise la socket Unix locale (connexion peer). Aucun mot de passe n’est demandé car le système considère que l’utilisateur postgres du système est légitime.
Connexion avec options
Section titled “Connexion avec options”Pour spécifier un hôte, un port, un utilisateur ou une base :
psql -h 127.0.0.1 -p 5432 -U postgres -d postgres| Option | Description |
|---|---|
-h |
Hôte (localhost, 127.0.0.1, ou une adresse IP distante) |
-p |
Port (par défaut 5432) |
-U |
Utilisateur |
-d |
Base de données |
Connexion avec variable d’environnement
Section titled “Connexion avec variable d’environnement”Vous pouvez simplifier la connexion en définissant des variables d’environnement :
export PGHOST=localhostexport PGPORT=5432export PGUSER=postgresexport PGDATABASE=postgrespsqlLes commandes méta (backslash)
Section titled “Les commandes méta (backslash)”Les commandes qui commencent par \ sont des commandes internes à psql. Elles permettent d’interroger le catalogue système sans écrire de SQL.
Commandes essentielles
Section titled “Commandes essentielles”| Commande | Description | Exemple |
|---|---|---|
\l ou \l+ |
Liste les bases de données | \l+ (affiche aussi la taille et les propriétaires) |
\du |
Liste les utilisateurs/rôles | \du |
\dt ou \dt+ |
Liste les tables (+ taille) | \dt+ |
\dn |
Liste les schémas | \dn |
\dS <table> |
Affiche la structure d’une table | \dS clients |
\dv |
Liste les vues | \dv |
\df |
Liste les fonctions | \df |
\x |
Active l’affichage vertical | \x puis SELECT * FROM table; |
\q |
Quitte psql | \q |
\? |
Affiche l’aide des commandes méta | \? |
\h <commande> |
Affiche l’aide SQL | \h CREATE TABLE |
\c <database> |
Se connecte à une autre base | \c ma_base |
\timing |
Active/désactive l’affichage des temps d’exécution | \timing |
Exemple d’affichage vertical
Section titled “Exemple d’affichage vertical”Avec \x (extended display), les colonnes sont affichées les unes en dessous des autres, ce qui est pratique pour les lignes longues :
\xSELECT * FROM clients WHERE id = 1;Résultat :
-[ RECORD 1 ]---+---------------------------id | 1nom | Dupont Jeanemail | [email protected]date_inscription| 2026-08-20Options utiles de psql
Section titled “Options utiles de psql”psql dispose de nombreuses options en ligne de commande pour automatiser et formater les sorties :
| Option | Effet | Exemple |
|---|---|---|
-c "commande" |
Exécute une commande SQL et quitte | psql -c "SELECT version();" |
-f fichier.sql |
Exécute un fichier de scripts | psql -f init.sql -d ma_base |
-L fichier.log |
Enregistre la session dans un fichier log | psql -L session.log |
-H |
Exporte les résultats au format HTML | psql -H -c "SELECT * FROM clients" > rapport.html |
-q |
Mode silencieux (pas de messages) | psql -q -f script.sql |
-t |
Affiche uniquement les lignes de résultats (sans entêtes) | psql -t -c "SELECT nom FROM clients" |
-A |
Sortie non alignée (utile pour les scripts) | psql -A -t -c "SELECT nom FROM clients" |
-o <fichier> |
Redirige la sortie vers un fichier | psql -o resultat.txt -c "SELECT * FROM clients" |
Exemples pratiques
Section titled “Exemples pratiques”1. Exécuter une requête et exporter en CSV
psql -d ma_base -c "COPY clients TO STDOUT WITH CSV HEADER" > clients.csv2. Exécuter un fichier SQL avec logging
psql -d ma_base -f migration.sql -L migration.log3. Récupérer une seule colonne pour un script bash
psql -t -A -d ma_base -c "SELECT email FROM clients WHERE id = 1"Manipulation des bases de données
Section titled “Manipulation des bases de données”Créer une base
Section titled “Créer une base”En SQL (dans psql) :
CREATE DATABASE magasin;Avec le wrapper (en ligne de commande) :
createdb magasinSupprimer une base
Section titled “Supprimer une base”DROP DATABASE magasin;ou
dropdb magasinSe connecter à une base
Section titled “Se connecter à une base”\c magasinManipulation des tables
Section titled “Manipulation des tables”Créer une table
Section titled “Créer une table”CREATE TABLE clients ( id SERIAL PRIMARY KEY, nom VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, date_inscription DATE DEFAULT CURRENT_DATE);Afficher la structure d’une table
Section titled “Afficher la structure d’une table”\d clientsSupprimer une table
Section titled “Supprimer une table”DROP TABLE clients;Vider une table (sans supprimer la structure)
Section titled “Vider une table (sans supprimer la structure)”TRUNCATE TABLE clients;Exemple de session complète
Section titled “Exemple de session complète”Voici une session psql complète qui illustre l’ensemble des commandes vues :
# Connexionsudo -u postgres psql
# Liste des bases\l
# Créer une baseCREATE DATABASE magasin;
# Se connecter à la base\c magasin
# Créer une tableCREATE TABLE produits ( id SERIAL PRIMARY KEY, nom VARCHAR(100) NOT NULL, prix DECIMAL(10,2) NOT NULL, stock INTEGER DEFAULT 0);
# Insérer des donnéesINSERT INTO produits (nom, prix, stock) VALUES ('Ordinateur portable', 899.99, 15), ('Souris sans fil', 29.99, 50), ('Clavier mécanique', 79.99, 30);
# InterrogerSELECT * FROM produits;
# Afficher la structure\d produits
# Activer le timer\timing
# Requête avec calculSELECT COUNT(*) FROM produits WHERE stock > 10;
# Quitter\qPersonnalisation de psql
Section titled “Personnalisation de psql”Vous pouvez personnaliser le comportement de psql avec le fichier .psqlrc dans votre répertoire personnel.
Exemple (~/.psqlrc) :
\set PROMPT1 '%/[%n@%m:%>] '\set PROMPT2 '[%n@%m:%>] '\set HISTSIZE 5000\x auto\x auto active l’affichage vertical automatiquement lorsque la ligne est trop large.
Prochain chapitre
Section titled “Prochain chapitre”Vous maîtrisez maintenant les bases de psql. Dans le prochain cours, vous approfondirez la gestion des bases de données : création avancée (encodage, templates, propriétaires), et gestion des tables (types de colonnes, contraintes, héritage, partitionnement).
👉 Cours 4 : Gestion des bases de données et des tables
Junior TSAFACK – 20/08/2026