L’initialisation de PostgreSQL consiste à créer un cluster de bases de données de la manière suivante :
/répertoire_des_binaires/initdb -D /répertoire_choisi_pour_la_base
Il faut ensuite lancer le serveur PostgreSQL :
/répertoire_des_binaires/postmaster -D /répertoire_choisi_pour_la_base
Une meilleure solution consiste à lancer le serveur PostgreSQL en tâche de fond et à diriger son flux de sortie vers un fichier (logfile) :
/répertoire_des_binaires/postmaster -D /répertoire_choisi_pour_la_base > logfile 2>&1 &
La création proprement dite d’une base de données dans le cluster se fait de la manière suivante :
createdb nom_de_la_nouvelle_base
Nous pouvons enfin utiliser l’interface en ligne de commande de PostgreSQL en démarrant un client :
psql nom_de_la_nouvelle_base
Attention, il y a des incompatibilités entre PostgreSQL et SELinux. Si vous rencontrez des problèmes, essayez de désactiver temporairement SELinux (setenforce 0). Cette solution n’est pas la meilleure. Si elle marche, essayez de corriger le problème plus finement et de manière définitive. Par exemple, sous une installation standard de Fedora Core 3, pour corriger le problème, procédez de la manière suivante :
À l’IUT, un seul cluster de base de données est créé et disponible pour tous les utilisateurs de PostgreSQL. Une seule base de données est affectée à chaque utilisateur ; son nom étant l’identifiant de l’utilisateur (i.e. nom de login).
Pour créer la base de données, il faut :
Le démarrage du client se fait de la manière suivante :
psql -h nom_serveur -p num_port ma_base identifiant
En salle de TP, nom_serveur est aquanux ; les champs num_port, ma_base et identifiant sont optionnels et inutiles, pour information :
Toutes les lignes de commandes SQL doivent se terminer par un « ; » ! Ce n’est, par contre, pas le cas des méta-commandes dont il est question ci-dessous.
| Méta-commandes | Description |
\? | Afficher toutes les méta-commandes |
\h | Afficher toutes les commandes SQL |
\h nom_commande | Aide concernant une commande SQL particulière |
\df | Afficher toutes les fonctions postgresql |
\cd nom_repertoire | Changer de répertoire courant |
\! nom_commande | Exécuter une commande shell |
\i nom_fichier | Lire et exécuter un script SQL |
\d | Afficher la liste des tables créées |
\d nom_table | Information concernant une table créée |
\copy nom_table from nom_fichier | Remplissage d’une table à partir d’un fichier texte |
\? pour afficher la liste des méta-commandes.\h CREATE TABLE pour connaître la syntaxe de la commande SQL de création de table.Schéma relationnel :
N’oubliez surtout pas :
\d).\copy nom_table from nom_fichier).Pour afficher l’ensemble des n-uplets d’une table, vous pouvez utiliser la commande SQL : SELECT * FROM nom_table.