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.
@echo off
REM adresse du serveur
SET server=localhost
SET /P server="Server [%server%]: "
REM nom de la base de donnees
SET database=postgres
SET /P database="Database [%database%]: "
REM port du serveur
SET port=5432
SET /P port="Port [%port%]: "
REM nom d'utilisateur
SET username=postgres
SET /P username="Username [%username%]: "
REM chemin de psql.exe
"C:\Program Files (x86)\pgAdmin 4\v4\runtime\psql.exe" -h %server% -U %username% -d %database% -p %port%
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 :
psql -U username -h localhost -p 5432 dbname
Dans le cas de la formation, il faudra alors lancer :
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 :
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 \.
\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 :
$ psql -f monfichier.sql