Le client textuel « psql »

Informations[1]

Objectif

  • Savoir dialoguer avec PostgreSQL via un terminal.

Mise en situation

Une fois PostgreSQL installé sur votre système, il y a deux manières de l'utiliser.

La première est d'écrire du code qui communique directement avec PostgreSQL, et c'est ce que vous ferez si vous développez une application web.

La seconde est de dialoguer avec PostgreSQL à l'aide d'un terminal et de commandes SQL, comme vous le feriez avec un outil comme DBFiddle.

Pour ce faire, on utilisera le shell PosgtreSQL, ou psql.

Définitionpsql

psql est le client textuel de PostgreSQL. C'est une interface en ligne de commande ou CLI (pour command line interface).

Il permet une utilisation interactive de PostgreSQL.

MéthodeConnexion à un serveur

Le plus souvent, on interagit avec un serveur PostgreSQL distant. Pour initier la connexion avec psql, on utilise la commande suivante :

1
psql -h adresse.serveur -U user -d mydb

Cette commande opère la connexion avec la machine d'adresse adresse.serveur avec un utilisateur PostgreSQL nommé user à la base de données mydb.

Pour que cette commande fonctionne, il faut que :

  • Le serveur PostgreSQL s’exécute sur la machine d'adresse adresse.serveur (sur le port standard 5432) ;

  • L'utilisateur user existe sur PostgreSQL et avoir un mot de passe défini ;

  • Une base de données mydb existe sur PostgreSQL et que l'utilisateur user y ait accès ;

  • Le mot de passe de l'utilisateur user soit renseigné.

Lorsque l'on est connecté au serveur on obtient le prompt de la forme :

1
psql (9.5.21)
2
Type "help" for help.
3
4
user=>

À partir de là, on peut saisir des requêtes SQL mais aussi des commandes psql.

On sort de psql avec :

1
user=> \q

SyntaxeÉcrire une instruction SQL

Une requête SQL peut être directement exécutée. On veillera à ne pas oublier le point virgule « ; » qui indique la fin de celle-ci.

1
user=> SELECT * FROM matable ;

SyntaxeÉcrire une instruction SQL sur plusieurs lignes

Une instruction SQL peut s'écrire sur une ou plusieurs lignes, le « retour chariot » n'a pas d'incidence sur la requête, c'est le  « ; » qui marque la fin de l'instruction SQL et provoque son exécution.

1
user=> SELECT *
2
user-> FROM matable
3
user-> ;

On notera dans psql la différence entre les caractères « => » et « -> » selon que l'on a ou pas effectué un retour chariot.

FondamentalCommandes de base : aide

\? : Liste des commandes psql

\h : Liste des instructions SQL

\h CREATE TABLE : Description de l'instruction SQL CREATE TABLE

FondamentalCommandes de base  : catalogue

\d : Liste des relations (catalogue de données)

\d maTable : Description de la relation maTable

ComplémentDocumentation de psql

Pour obtenir toutes les options sur psql, on pourra se référer à la documentation de ce client ici :

https://docs.postgresql.fr/9.6/app-psql.html

ComplémentpgAdmin 4

Le client pgAdmin4 est un client graphique disponible sous Linux et sous Windows.

pgAdmin4 offre une interface graphique permettant d'effectuer les mêmes opérations qu'avec le client psql et offrant une navigation simplifiée et un monitoring facilité.