PostgreSQL1 est un SGBDR, libre (licence BSD), multi-plate-formes (Unix, Linux, Windows,
MacOS, ...) puissant et très bien documenté. PostgreSQL comme la grande majorité des SGBD est un
logiciel client-serveur. Il faut donc pour l'utiliser un serveur postgresql (conçue à l'origine pour Unix) et
un client. Il existe plusieurs clients, les deux plus utilisés sont le client textuel psql et le client graphique
PgAdmin III.
Note : Nous présentons ici une installation a minima de PostgreSQL uniquement à des fins de test et
d'apprentissage, et pour un usage local. Pour mettre en production une base de données PostgreSQL
sur le réseau, il faut suivre des directives supplémentaires, notamment pour assurer la sécurité
du système, sa sauvegarde, etc. Ces thèmes ne sont pas abordés dans le cadre de ce document.
2. Installation
Complément :
1
http://docs.postgresqlfr.org/
2
http://www.enterprisedb.com/products-services-training/pgdownload#windows
1
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
• Base de données par défaut : L'installation crée une base de données par défaut qui
s'appelle postgres et un utilisateur postgres qui possède cette base (OWNER).
• Informations réseau :
• Le port standard de communication de PosgreSQL est 5432.
• Si le client et le serveur sont sur la même machine, le client peut bien entendu se
connecter au serveur localhost sur le port 5432.
psql est le client textuel de PostgreSQL. La connexion à un serveur PostgreSQL avec le client psql se
fait en tapant la commande : psql -h server.adress.or.ip -d database -U user
La commande psql utilisée sans paramètre se connecte au serveur localhost avec pour nom de
database et pour nom de user le nom de l'utilisateur du système qui invoque la commande.
Écrire une instruction SQL sur plusieurs lignes : Une instruction SQL peut s'écrire sur une ou plusieurs
lignes, le retour chariot n'a pas d'incidence sur la requête, c'est le ‘;’ qui marque la fin de l'instruction
SQL et provoque son exécution.
1 dbnf17p015=> SELECT *
2 dbnf17p015-> FROM maTable
3 dbnf17p015-> ;
On notera dans psql la différence entre les caractères => et -> selon que l'on a ou pas effectué un retour
chariot.
Commandes de base3 :
• L’Aide
\q : Quitter psql
4. Types de données standards4
• numériques : integer (int2, int4, int8), real (float4, float8)
• dates : date (time, timestamp)
• chaînes : char, varchar, text
• autres : boolean
3
Complément sur http://www.postgresql.org/docs/current/static/app-psql.html
4
Complément sur http://docs.postgresqlfr.org/8.1/datatype.html
2
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
5
http://www.postgresql.org/docs/8.4/static/ddl-schemas.html
3
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
4
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
5
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
Figure 2 pgAdminIII6
7. Compléments
PL/pgSQL : http://www.postgresql.org/docs/current/static/plpgsql.html
Autres langages procéduraux (PL)
• PL/Tcl
• PL/Perl
• PL/Python
6
Il existe une internface Web sous PHP (phpPgAdmin) : http://phppgadmin.sourceforge.net
7
https://linuxhint.com/install-pgadmin4-ubuntu/
https://www.postgresql.org/ftp/pgadmin/pgadmin4/v4.5/pip/
6
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
5. Download pgAdmin 4
$wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v4.5/pip/pgadmin4-
4.5-py2.py3-none-any.whl
6. Install pgAdmin 4
$pip install pgadmin4-4.5-py2.py3-none-any.whl
If all the steps are completed properly then the browser will display the following page.
7
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
2. Structure du langage
– déclaration ou remplacement d’une fonction
CREATE OR REPLACE FUNCTION
– déclaration de la signature : nom, retour, arguments
log_nep(a REAL) RETURNS REAL
– caractéristiques particulières
RETURNS NULL ON NULL INPUT
– début du code AS $$
– déclaration des variables et code de la fonction : retour d’une valeur ou levée d’une
exception
BEGIN
IF a>0 THEN
RETURN LN(a);
END IF;
8
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
9
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
10
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
11
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
– If the STRICT option is specified, the query must return exactly one row or a run-time error
will be reported, either NO_DATA_FOUND (no rows) or TOO_MANY_ROWS (more than one
row). You can use an exception block if you wish to catch the error, for example:
BEGIN
SELECT * INTO STRICT myrec FROM emp WHERE empname = myname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE EXCEPTION 'employee % not found', myname;
WHEN TOO_MANY_ROWS THEN
RAISE EXCEPTION 'employee % not unique', myname;
END;
12
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
13
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
14
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
END;
$$ LANGUAGE plpgsql;
15
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
16
Université Oran 1, Dept. Informatique – M1 TC – Bases de Données Avancées –
______________
17