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 :
\llister les bases\cse connecter à une base (en créer une avant pour essayerCREATE DATABASE test;)\dtlister les tables\dt+lister les tables avec informations supplémentaires (comme la taille des tables)\ddécire une table\dnlister 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
pagilapuis 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\cdpermet de changer le répertoire de travail depuis psql\ipermet de charger et exécuter un fichier sql
Une fois les données charger, nous pouvons continuer avec quelques commandes usuelles :
\dflister les fonctions\dvlister les vues- Exécuter un SELECT :
SELECT * FROM public.customer;puis\gpour ré-exécuter la dernière requête \spour afficher l'historique des commandes (on peut ajouter un nom de fichier en argument pour sauvegarder l'historique dans un fichier)\timingpuis une requête pour mesurer le temps d'exécution\xpuis ré-exécuter le SELECT précédent pour constater l'affichage pivoté
Et enfin :
\qpour quitter psql