Section courante

A propos

Section administrative du site

Les premiers pas

Dans le jargon des bases de données, PostgreSQL utilise un modèle client/serveur. Une session PostgreSQL se compose des processus (programmes) de coopération suivants :

Comme c'est généralement le cas pour les applications client/serveur, le client et le serveur peuvent se trouver sur des hôtes différents. Dans ce cas, ils communiquent via une connexion réseau TCP/IP. Vous devez garder cela à l'esprit, car les fichiers accessibles sur une machine cliente peuvent ne pas être accessibles (ou peuvent uniquement être accessibles en utilisant un nom de fichier différent) sur la machine du serveur de base de données.

Le serveur PostgreSQL peut gérer plusieurs connexions simultanées à partir de clients. Pour y parvenir, il démarre, en état «forks», un nouveau processus pour chaque connexion. À partir de ce moment, le client et le nouveau processus serveur communiquent sans intervention du processus postgres d'origine. Ainsi, le processus serveur superviseur est toujours en cours d'exécution, en attente de connexions client, tandis que les processus clients et serveurs associés vont et viennent. (Tout cela est bien entendu invisible pour l'utilisateur.)

Création d'une base de données

Le premier test pour voir si vous pouvez accéder au serveur de base de données est d'essayer de créer une base de données. Un serveur PostgreSQL en cours d'exécution peut gérer de nombreuses bases de données. En règle générale, une base de données distincte est utilisée pour chaque projet ou pour chaque utilisateur. Pour créer une nouvelle base de données, dans cet exemple nommé mabd, vous utilisez la commande suivante :

createdb mabd

Si cela ne produit aucune réponse, cette étape a réussi sinon vous verrez un message semblable à :

createdb: command not found

alors PostgreSQL n'a pas été installé correctement. Soit il n'a pas été installé du tout, soit le chemin de recherche de votre interpréteur de commande n'a pas été défini pour l'inclure. Essayez plutôt d'appeler la commande avec un chemin absolu :

/usr/local/pgsql/bin/createdb mabd

Une autre réponse pourrait être celle-ci :

createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?

Cela signifie que le serveur n'a pas été démarré ou qu'il n'écoute pas là où createdb s'attend à le contacter. Une autre réponse pourrait être celle-ci :

createdb: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL: role "gladir" does not exist

où votre propre nom de connexion est mentionné. Cela se produira si l'administrateur n'a pas créé de compte utilisateur PostgreSQL pour vous. (Les comptes d'utilisateurs PostgreSQL sont distincts des comptes d'utilisateurs du système d'exploitation.) Vous devrez devenir l'utilisateur du système d'exploitation sous lequel PostgreSQL a été installé (généralement postgres) pour créer le premier compte utilisateur. Il se peut également que vous ayez reçu un nom d'utilisateur PostgreSQL différent du nom d'utilisateur de votre système d'exploitation ; dans ce cas, vous devez utiliser le paramètre -U ou définir la variable d'environnement PGUSER pour spécifier votre nom d'utilisateur PostgreSQL.

Si vous avez un compte utilisateur mais qu'il n'a pas les privilèges requis pour créer une base de données, vous verrez ce qui suit :

createdb: error: database creation failed: ERROR: permission denied to create database

Tous les utilisateurs n'ont pas l'autorisation de créer de nouvelles bases de données. Si PostgreSQL refuse de créer des bases de données pour vous, l'administrateur du site doit vous accorder l'autorisation de créer des bases de données. Consultez l'administrateur de votre site si cela se produit. Si vous avez installé vous-même PostgreSQL, vous devez vous connecter sous le compte d'utilisateur sous lequel vous avez démarré le serveur.

Vous pouvez également créer des bases de données avec d'autres noms. Le PostgreSQL vous permet de créer n'importe quel nombre de bases de données sur un site donné. Les noms de base de données doivent avoir un premier caractère alphabétique et sont limités à 63 octets. Un choix pratique consiste à créer une base de données avec le même nom que votre nom d'utilisateur actuel. De nombreux outils supposent que le nom de la base de données est le nom par défaut, ce qui peut vous éviter de taper. Pour créer cette base de données, tapez simplement :

createdb

Si vous ne souhaitez plus utiliser votre base de données, vous pouvez la supprimer. Par exemple, si vous êtes le propriétaire (créateur) de la base de données mabd, vous pouvez la détruire à l'aide de la commande suivante :

dropdb mabd

(Pour cette commande, le nom de la base de données n'est pas par défaut le nom du compte utilisateur. Vous devez toujours le spécifier.) Cette action supprime physiquement tous les fichiers associés à la base de données et ne peut pas être annulée, donc cela ne doit être fait qu'avec beaucoup de prévoyance.

Accéder à une base de données

Une fois que vous avez créé une base de données, vous pouvez y accéder en :

Vous voudrez probablement démarrer psql pour essayer les exemples. Il peut être activé pour la base de données mabd en tapant la commande :

psql mabd

Si vous ne fournissez pas le nom de la base de données, il sera par défaut le nom de votre compte utilisateur. Vous avez déjà découvert ce schéma dans la section précédente en utilisant createdb. Dans psql, vous serez accueilli avec le message suivant :

psql (14.0)
Type "help" for help.

mabd=>

La dernière ligne peut aussi être :

mabd=#

Cela signifierait que vous êtes un superutilisateur de la base de données, ce qui est probablement le cas si vous avez installé vous-même l'instance PostgreSQL. Être un superutilisateur signifie que vous n'êtes pas soumis à des contrôles d'accès. Les diagnostics de createdb et psql sont similaires, et si le premier a fonctionné, le dernier devrait également fonctionner. La dernière ligne affichée par psql est le prompt, et elle indique que psql vous écoute et que vous pouvez taper des requêtes SQL dans un espace de travail géré par psql. Essayez la commande suivante :

SELECT version();

vous obtiendrez un résultat ressemblant à ceci :

version
-------------------------------------------------------------------?-----------------------
PostgreSQL 14.0 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit

Exécute la commande suivante pour voir la date courante :

SELECT current_date;

vous obtiendrez un résultat ressemblant à ceci :

date
------------
2019-01-07
(1 row)

Exécute la commande suivante pour tester la réponse à de simple expression :

SELECT 2 + 2;

vous obtiendrez un résultat ressemblant à ceci :

?column?
----------
        4
(1 row)

Le programme psql possède un certain nombre de commandes internes n'étant pas des commandes SQL. Ils commencent par la barre oblique inverse, "\". Par exemple, vous pouvez obtenir de l'aide sur la syntaxe de diverses commandes SQL de PostgreSQL en tapant :

mabd=> \h

Pour sortir de psql, tapez :

mabd=> \q

et psql se fermera et vous ramènera à votre interpréteur de commande. (Pour plus de commandes internes, tapez \? au prompt de psql.) Les fonctionnalités complètes de psql sont documentées dans psql.



Dernière mise à jour : Dimanche, le 27 décembre 2015