Psql

Lancer pgsql

psql est une interface en mode texte pour PostgreSQL. Il permet de saisir des requêtes de façon interactive, de les exécuter sur PostgreSQL et de voir les résultats de ces requêtes. Alternativement, les entrées peuvent êtres lues à partir d'un fichier. De plus, il fournit un certain nombre de méta-commandes et plusieurs fonctionnalités pour faciliter l'écriture des scripts et automatiser un nombre varié de tâches.

Sous Windows :

Lancer psql depuis le menu Démarrer / PostgreSQL 12 / SQL Shell (psql).

Si pgAdmin a été installé seul, psql est disponible dans le dossier C:\Program Files (x86)\pgAdmin 4\v4\runtime.

Dans ce cas, copier-coller le texte ci-dessous dans un bloc-note et l'enregistrer sur le bureau sous psql.bat (bien spécifier l'extension .bat), puis lancer le ficher.

1
@echo off
2
3
REM adresse du serveur
4
SET server=localhost
5
SET /P server="Server [%server%]: "
6
7
REM nom de la base de donnees
8
SET database=postgres
9
SET /P database="Database [%database%]: "
10
11
REM port du serveur
12
SET port=5432
13
SET /P port="Port [%port%]: "
14
15
REM nom d'utilisateur
16
SET username=postgres
17
SET /P username="Username [%username%]: "
18
19
REM chemin de psql.exe
20
"C:\Program Files (x86)\pgAdmin 4\v4\runtime\psql.exe" -h %server% -U %username% -d %database% -p %port%
21
22
pause

Taper Les informations demandées. Les informations entre crochets sont les valeurs par défaut, bien penser à renseigner la base de données formation.

Noter alors le message d'alerte sur le ‘windows code page <1252>.

Pour changer cela exécuter les instructions décrites dans les notes pour les utilisateurs Windows en bas de la http://docs.postgresql.fr/9.4/app-psql.htmlpage

La syntaxe est : \! cmd.exe /c chcp 1252

Sous Linux ou MacOS :

Lancer le terminal. La syntaxe générale est la suivante :

1
psql -U username -h localhost -p 5432 dbname

Dans le cas de la formation, il faudra alors lancer :

1
psql -U postgres -h localhost -p 5432 formation

Travailler sous psql

Un fois connecté à la base de données, toutes les requêtes SQL classiques sont possibles :

1
SELECT * FROM spatial_ref_sys LIMIT 1;

On limitera (LIMIT) l'affichage des résultats dans la console. Lors d'appels de grandes tables, CTRL+Q permet de quitter ou ALT+Q sous Windows.

Méta-commandes

Nous ne développerons pas l'usage de psql dans ce cours.

psql est documenté ici : https://docs.postgresql.fr/12/app-psql.html

Il existe des méta-commandes commençant par \.

1
\i nomfichier

Lit l'entrée à partir du fichier nomfichier et l'exécute comme si elle avait été saisie sur le clavier. Permet par exemple d'exécuter un script SQL.

À noter que l'on peut également utiliser pour ce faire la commande ci-dessous, ce qui est très utilse lors de chargement de très gros fichiers SQL :

1
$ psql -f monfichier.sql