Manipulations de base avec psql
Dans ce premier TP nous allons effectuer quelques manipulations simples pour nous familiariser avec l'outil en ligne de commande psql.
La première étape est généralement de changer d'utilisateur pour passer sur l'utilisateur système postgres
si ce n'est pas déjà le cas
su - postgres
Une fois connecté en tant que postgres, on peut normalement appeler psql
sans
argument pour se retrouver connecté à l'instance locale sur le port par défaut (5432
). Si il y a plusieurs instances sur la machine, mieux vaut spécifier le port explicitement.
- Une fois connecté à l'instance, nous sommes dans la console interactive de psql et le prompt change
$ psql -p 5432
psql (13.1 (Debian 13.1-1.pgdg100+1))
Type "help" for help.
postgres=#
- Pour commencer, afficher les deux menus d'aide :
\?
\help
\?
est le menu d'aide PostgreSQL avec la liste de toutes les commande d'administration
\help
est le menu d'aide SQL qui permet d'obtenir de la documentation sur les commandes SQL
- Obtenir le détail d'une commande :
\help SELECT
Essayer les quelques commandes les plus courantes :
\l
lister les bases\c
se connecter à une base (en créer une avant pour essayerCREATE DATABASE test;
)\dt
lister les tables\dt+
lister les tables avec informations supplémentaires (comme la taille des tables)\d
décire une table\dn
lister les schémas
Nous allons maintenant importer un jeu de données pour peupler la base avec quelques objets.
Télécharger le jeu de données : https://github.com/morenoh149/postgresDBSamples/tree/master/pagila-0.10.1
- Une fois téléchargées, créer une base
pagila
puis importer les données à l'intérieur.
Quelques commandes utiles :
\!
permet de passer en mode shell sans quitter psql, on revient à psql avec un appel àexit
\cd
permet de changer le répertoire de travail depuis psql\i
permet de charger et exécuter un fichier sql
Une fois les données charger, nous pouvons continuer avec quelques commandes usuelles :
\df
lister les fonctions\dv
lister les vues- Exécuter un SELECT :
SELECT * FROM public.customer;
puis\g
pour ré-exécuter la dernière requête \s
pour afficher l'historique des commandes (on peut ajouter un nom de fichier en argument pour sauvegarder l'historique dans un fichier)\timing
puis une requête pour mesurer le temps d'exécution\x
puis ré-exécuter le SELECT précédent pour constater l'affichage pivoté
Et enfin :
\q
pour quitter psql