Gérer une base de données

Maintenant que Postgres fonctionne nous pouvons créer quelques bases de données pour nous faire la main. Ici, nous décrivons les commandes simples de gestion d'une base de données.

La plupart des applications Postgres supposent que le nom de la base, s'il n'est pas spécifié, est le même que celui de votre compte sur l'ordinateur.

Si votre administrateur ne vous a pas donné les droits de création de bases, vous devrez demander quel est le nom de la base de données qu'il vous a attribué. Si c'est le cas, vous pouvez sauter les sections sur la création et destruction des bases.

Créer une base

Si vous voulez créer une base nommée mydb, vous pouvez le faire en tapant les commandes suivantes :
% createdb mydb

Si vous n'avez pas les privilèges requis pour créer la base, vous verrez apparaître :
% createdb mydb
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mydb.

Postgres vous permet de créer une base dont vous devenez aussitôt l'administrateur. Un nom de base doit commencer par un caractère alphabétique et comprendre au plus 32 caractères. Chaque utilisateur n'a pas l'autorisation de devenir administrateur de la base. Si Postgres refuse de créer des bases pour vous, l'administrateur du site doit vous accorder les permissions de création de bases.

Accéder à une base

Une fois créé une base, vous pouvez y accéder :

Vous pourrez vouloir lancer psql pour essayer les exemples de ce manuel. Il peut être activé, pour la base mydb par la commande :
% psql mydb
vous serez accueilli par le message
Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL

   type \? for help on slash commands
   type \q to quit
   type \g or terminate with semicolon to execute query
 You are currently connected to the database: template1

mydb=>

Ce prompt indique que le terminal monitor est à l'écoute et que vous pouvez saisir des requêtes SQL dans un espace de travail qu'il maintient. Le programme psql répond aux codes d'échappement qui commencent par le backslash, "\". Vous pouvez par exemple obtenir de l'aide sur la syntaxe des différentes commandes SQL de Postgres en tapant :
mydb=> \h
Une fois que vous avez fini d'entrer vos requêtes, vous pouvez passer celles ci au serveur Postgres en tapant :
mydb=> \g
Ceci indique au serveur de procéder à la requête. Le "\g" n'est pas nécessaire si vous terminez la requête avec un point-virgule Pour lire les requêtes depuis un fichier, tapez :
mydb=> \i fileName
Pour quitter psql, et retourner au prompt Unix, tapez :
mydb=> \q
Pour obtenir une brève description des autres caractères d'échappement tapez "\h". L'espace blanc (i.e. les espaces de tabulation et les nouvelles lignes), peuvent être utilisés librement dans les requêtes SQL. Les commentaires sur une seule ligne sont notés par "--". Tout ce qui est après les "--" jusqu'à la fin de la ligne est ignoré. Les commentaires sur plusieurs lignes, et les commentaires dans une ligne, sont notés par "/*...*/"

Détruire une base

Si vous êtes l'administrateur d'une base vous pouvez la détruire en utilisant la commande Unix suivante (ici : cas d'une base nommée mydb) :
% destroydb mydb
Cette action efface physiquement tous les fichiers Unix associés à la base et ne peut pas être récupérée, vous devez donc faire très attention !