Client psql
Quelques possibilités si vous disposez d’une machine sur laquelle on peut installer psql et sur laquelle on peut établir des tunnels ssh
Installer
Utiliser
Remplacer id_ent par votre identifiant ENT dans la suite.
Saisissez votre mot de passe (attention : pas d’écho)
$ ssh id_ent@etu-pgsql.math.univ-paris-diderot.fr -L 5436:localhost:5432 -N
(id_ent@etu-pgsql.math.univ-paris-diderot.fr) Password for id_ent@etu-pgsql.math.univ-paris-diderot.fr:
$Utilisez votre tunnel SSH pour accéder au serveur PostGres. Dans une autre fenêtre terminal, lancer psql, saisissez à nouveau votre mot de passe.
$ psql -p 5436 -U id_ent -W -h localhost -d bd_2023-24
Password for id_ent:
bd_2023-24=# \? Vous êtes maintenant dans une session sur le serveur PostGres. Vous êtes connecté au catalogue bd_2023-24
Vous pouvez utiliser une grande partie des commandes magiques de psql
world)
bd_2023-24=# SET search_path TO world ;
SETbd_2023-24=# \d
+--------+-----------------+-------+-----------+
| Schema | Name | Type | Owner |
|--------+-----------------+-------+-----------|
| world | city | table | boucheron |
| world | country | table | boucheron |
| world | countrylanguage | table | boucheron |
+--------+-----------------+-------+-----------+
(3 rows)bd_2023-24=# \d city
+-------------+--------------+-----------+
| Column | Type | Modifiers |
|-------------+--------------+-----------|
| id | integer | not null |
| name | text | not null |
| countrycode | character(3) | not null |
| district | text | not null |
| population | integer | not null |
+-------------+--------------+-----------+
Indexes:
"city_pkey" PRIMARY KEY, btree (id)
Foreign-key constraints:
"city_country_fk" FOREIGN KEY (countrycode) REFERENCES country(countrycode) ON UPDATE CASCADE ON DELETE SET NULL DEFE>
Referenced by:
TABLE "country" CONSTRAINT "country_capital_fkey" FOREIGN KEY (capital) REFERENCES city(id)bd_2023-24=# \conninfo
You are connected to database "bd_2023-24" as user "id_end" on host "localhost" (address "127.0.0.1") at port "5436".bd_2023-24=# \e
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/nvim
4. /usr/bin/vim.tiny
5. /usr/bin/emacs
6. /usr/bin/code
7. /bin/ed
Choose 1-7 [1]: 6Sous mon éditeur préféré (vs code ici), j’edite une requête
SELECT ci.name, co.name_country
FROM
world.city ci JOIN
world.country co ON (
ci.countrycode=co.countrycode AND
ci.id = co.capital
)
ORDER BY co.name_country;sauvegardée dans un fichier de chemin d’accès /tmp/psql.edit.23866.sql (construit automatiquement)
Dans ma session sur bd_2023-24, je peux maintenant inclure et exécuter cette requête.
bd_2023-24=# \i /tmp/psql.edit.23866.sql
name | name_country
-----------------------------------+---------------------------------------
Kabul | Afghanistan
Tirana | Albania
Alger | Algeria
Fagatogo | American Samoa
Andorra la Vella | Andorra
Luanda | Angola
:
...Entrez q pour sortir du pager
Il est commode d’archiver le travail d’une séance de TP dans un fichier *.sql. On peut créer les fichiers avant la session ou en cours de session (ici dans un dialecte d’Unix)
bd_2023-24=# \! touch tp-x.sql
bd_2023-24=# -- editer tp-x.sql
bd_2023-24=# \e tp-x.sql
bd_2023-24=# -- charger/exécuter tp-x.sql
bd_2023-24=# \i tp-x.sql