Outils pour utilisateurs

Outils du site


software:applications:postgresql:introduction_client_postgres_psql

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
software:applications:postgresql:introduction_client_postgres_psql [2022/11/10 09:51] – ↷ Nom de la page changé de software:applications:postgresql:introduction_aux_commandes_postgres à software:applications:postgresql:introduction_client_postgres_psql yoannsoftware:applications:postgresql:introduction_client_postgres_psql [2022/11/10 11:24] (Version actuelle) yoann
Ligne 3: Ligne 3:
 :TODO: :TODO_DOCUPDATE: :TODO: :TODO_DOCUPDATE:
  
-====== Introduction aux commandes PostgreSQL =====+====== PostgreSQL : Introduction au client psql =====
  
 Pour s'essayer sans conséquences, on crée un conteneur Docker temporaire exécutant le serveur PostgreSQL: Pour s'essayer sans conséquences, on crée un conteneur Docker temporaire exécutant le serveur PostgreSQL:
Ligne 21: Ligne 21:
 </code> </code>
  
-Si on invoque le client **psql** sans argument, le rôle et le nom de la base utilisés par défaut sont déduit du nom de l'utilisateur dans notre cas 'root'. Cependant le rôle root et la base de donnée root n'existent pas:+Si on invoque le client **psql** sans argument, le rôle et le nom de la base utilisés par défaut sont déduit du nom de l'utilisateur courant dans notre cas 'root'. Cependant le rôle root et la base de donnée root n'existent pas:
  
 <code bash> <code bash>
Ligne 39: Ligne 39:
 Lorsque le client s'exécute en mode interactif, il affiche un prompt de la forme **%%ma_base=>%%** pour un utilisateur ou **%%ma_base=#%%** pour un super-utilisateur. Le prompt **%%ma_base->%%** indique que le client attend la suite de la commande. Lorsque le client s'exécute en mode interactif, il affiche un prompt de la forme **%%ma_base=>%%** pour un utilisateur ou **%%ma_base=#%%** pour un super-utilisateur. Le prompt **%%ma_base->%%** indique que le client attend la suite de la commande.
  
-===== Les méta commandes de psql =====+===== Les méta commandes =====
  
-Le client **psql** dispose de méta-commandes qui sont interprétées par psql lui-même: +Le client **psql** dispose de méta-commandes qui sont interprétées par psql lui-même. Elles ont été pensées  pour l'administration et l'usage de scripts
-  * Elles commencent par un backslash '\';+  * Elles commencent par un backslash '\' en dehors de guillemets simples;
   * Les mnémoniques sont en minuscules;   * Les mnémoniques sont en minuscules;
   * Elles se terminent par un retour à la ligne ou sont séparées par '\\' et non par un ';' car ce ne sont pas des commandes SQL.   * Elles se terminent par un retour à la ligne ou sont séparées par '\\' et non par un ';' car ce ne sont pas des commandes SQL.
Ligne 78: Ligne 78:
 \echo :USER \echo :USER
  
--- Exécuter une commande externe du shell+-- Exécuter une commande externe
 \! ls -lh \! ls -lh
  
Ligne 85: Ligne 85:
 </code> </code>
  
 +===== Exécution pas à pas =====
 +
 +Pour le débogage des scripts ou des commandes, il peut être intéressant de démarrer psql avec l'option **-s** qui permet d'afficher et de valider chaque commande avant exécution:
 +
 +<code bash>
 +psql -s -U alice dbtest
 +</code>
 +
 +Si psql n'a pas été lancé avec l'option, on peut activer le mode pas à pas en définissant la variable **SINGLESTEP**:
 +
 +<code>
 +\set SINGLESTEP on
 +</code>
 +
 +Pour quitter le mode pas à pas on supprime la variable:
 +<code>
 +\unset SINGLESTEP
 +</code>
  
 ===== Gestion des rôles ===== ===== Gestion des rôles =====
Ligne 109: Ligne 127:
 create role john with NOLOGIN; create role john with NOLOGIN;
  
 +-- Modifier un rôle existant
 alter role john with LOGIN CREATEDB; alter role john with LOGIN CREATEDB;
  
--- Affecter un mot de passe à un compte existant+-- Affecter un mot de passe à un rôle existant
 alter role john password 'secretPass'; alter role john password 'secretPass';
  
--- Annuler le mot de passe associé à un compte+-- Annuler le mot de passe associé à un rôle
 alter role john with password null; alter role john with password null;
  
Ligne 187: Ligne 206:
 <code> <code>
 \list \list
 +\l
 </code> </code>
  
 Pour créer une base Pour créer une base
-<code> +<code sql
-create database mabase;+CREATE DATABASE mabase;
 </code> </code>
  
 Réaffecter un base à un utilisateur existant: Réaffecter un base à un utilisateur existant:
-<code> +<code sql
-alter database mabase owner to john;+ALTER DATABASE mabase OWNER TO john;
 </code> </code>
  
 Supprimer la base. Supprimer la base.
-<code> +<code sql
-drop mabase;+DROP DATABASE mabase;
 </code> </code>
  
software/applications/postgresql/introduction_client_postgres_psql.1668073874.txt.gz · Dernière modification : 2022/11/10 09:51 de yoann