Les indications essentielles pour installer une base de données PostGreSQL sous Debian.

On va utiliser « apt-get » pour l’installation des paquets.

# apt-get install postgresql postgresql-client

L'installation est automatique. Elle créée un utilisateur postgre par défaut qui a les droits sur la base de données. Cet utilisateur permet d'initialiser une base de donnée dans le $HOME de l'utilisateur (/var/lib/postgresql).

# su
$ cd
$ /usr/lib/postgresql/[version]/bin/initdb -D data

Mais l'installation sous Debian fait cela automatiquement.

La première chose à faire est de mettre un mot de passe à l'admin postgres

# su postgres
$ psql -d template1

template1=# alter user postgres with password 'mot-de-passe';

Rajouter cette ligne dans le fichier de configuration pg_hba.conf
(/etc/postgresql/[version]/main/)

$ local all postgres mot-de-passe

Pour la gestion courante de la base de donnée on créé un utilisateur.

$ createuser mon-utilisateur -P -D -A

On créé une base de donnée pour cet utilisateur :

$ createdb -O mon-utilisateur -E UTF-8 ma-base

Supprimer un utilisateur

$ dropuser mon-utilisateur

Supprimer une base de donnée

$ dropdb ma-base

Lister les bases de données

$ psql -l

Se connecter avec un utilisateur :

$ psql -U mon-utilisateur ma-base

Les commandes de base :

  • \l = lister les bases
  • \d = lister les tables
  • \d ma-table = Dédrire la table ma-table (DESCRIBE avec MySQL)
  • \q = quitter
  • \h = l'aide
  • \i mon-fichier.sql = lire les instruction de mon-fichier.sql
  • SELECT version() = Donne la version de PostGreSQL
  • SELECT current_date = donne la date courante

Types de données sous PostGreSQL :

  • Type de données logique
    • BOOL = boolean, renvoit VRAI (t), FAUX (f)
  • Type de données Numériques
    • INT2 = SMALLINT - entier court, stocké sur 2 octets (-32768 à 32767)
    • INT4 = INT, INTEGER - entier, stocké sur 4 octets (-2147483648 à 2147483647)
    • INT8 = BIGINT - entier long, stocké sur 8 octets (-9223372036854775808 à9223372036854775807 )
    • OID = identifiant d'objet, stocké sur 4 octets (0 à 4294967295)
  • Les réels
    • FLOAT4 = REAL, stocké sur 4 octets. Précision de 6 chiffres
    • FLOAT8 = FLOAT, DOUBLE PRECISION, stocké sur 8 octets. Précision de 15 chiffres.
    • NUMERIC (n,e) = Nombre exact (n = nombre, e = echelle soit le chiffres après la virgule)
  • Type SERIAL limité à 2 147 483 647 enregistrements.
  • Type de données alphanumériques
    • TEXTE = chîne illimitée.
    • CHAR(n) = chaîne limité à n carractère
    • VARCHAR(n) = chaîne limité à n carractère et de longueur variable
  • Type de données temporelles
    • DATE
      = date, stocké sur 4 octets (4713 av JC à 32767 ap JC)
    • TIME = heure, stocké sur 4 octets (00:00:00:00 à 23:59:59:99)
    • TIMESTAMP = stocké sur 4 octets (14-12-1901 à 19-01-2038)
    • INTERVAL = stocké sur 12 octets (-178 000 000 ans à 178 000 000 ans)

Création d'une table

CREATE TABLE compositeur
	(
code_compositeur int4 NOT NULL DEFAULT,
nom_compositeur varchar(30) NOT NULL,
CONSTRAINT compositeur_pkey PRIMARY KEY (code_compositeur)
)

Insérer des données

INSERT INTO compositeur VALUES (1, 'PROCOFIEV');
  INSERT INTO compositeur VALUES(2, 'MENDELSSOHN'); 
  INSERT INTO compositeur VALUES(3, 'BRAHMS');
    ...
    INSERT INTO compositeur  (code_compositeur, nom_compositeur) VALUES(1, 'PROCOFIEV'; 2, 'MENDELSSOHN'; 3, 'BRAHMS');

Mise à jour de données

UPDATE compositeur SET nom_compositeur = 'MOZART' WHERE nom_compositeur ='BRAHMS';

Suppression de données

DELETE FROM  compositeur WHERE nom_compositeur ='MOZART';

Afficher des données

SELECT * FROM compositeur;
	    ...
	    SELECT nom_compositeur FROM compositeur WHERE nom_compositeur ='PROCOFIEV';

Sauvegarder la base de données

$ pg_dump nom_bdd > nom_fichier

Restaurer une base de données

$ createdb -0 nom-utilisateur -E UTF8 newbase plsql newbase < nom_fichier

Liens :

Site de PostGreSQL : www.postgresql.org/

Documentation offcielle : www.postgresqlfr.org/

Developpez : http://postgresql.developpez.com/faq/