Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
ACCUEIL POSTGRESQL FORUM POSTGRESQL F.A.Q POSTGRESQL UDF POSTGRESQL LIVRES POSTGRESQL

Cet article a pour but d'expliquer aux débutants comment prendre en main PostgreSQL très simplement à l'aide de l'outil graphique PgAdmin III.

               Version hors-ligne (Miroir)

. Introduction
1. CREATION DE LA BASE DE DONNEES
2. CREATION DES TABLES
2.1. TABLE GENRE
2.1.1. Ouvrir schéma public
2.1.2. création des colonnes
2.1.3. création d'une clé primaire
2.1.4. Visualiser le contenu d'une table
2.1.5. Le panneau sql affiche les commandes, pour la colonne idgenre :
2.1.6. table année tabannée
2.1.7. table film tabfilm
2.2. RELATION UN A PLUSIEURS ENTRE DEUX TABLES
2.2.1.. Créer une clé étrangère
2.3. RELATION PLUSIEURS A PLUSIEURS ENTRE DEUX TABLES
2.3.1. table intermédiaire entre tabfilm et tagenre
2.3.2. Ajouter les clés étrangères pour les liaisons avec tabfilm et tabgenre
2.3.2. Créer une deuxième clé étrangère genre
3. INSERER LES DONNEES DANS LES TABLES
3.1.
3.2. Insérer les genres ligne par ligne pour le tableau genre
3.3. Insérer des données dans tabannée
3.4. Insérer des données dans tabfilm
3.5. Insérer des données dans tab_film_genre
4. POUR AFFICHER LE CONTENU D'UNE SEULE TABLE
4.1. le contenu d'une table
4.2. Le contenu d'une colonne d'une table
4.3. Le contenu sélectionné d'une colonne d'une table
4.4. Le contenu trié d'une colonne d'une table
4.5. Même principe pour genre
4.6. Compter le nombre de films
5. AFFICHER LE CONTENU DE DEUX TABLES LIEES PAR UNE CLE ETRANGERE
5.1. Afficher le film et l'année de sortie
5.2. afficher le film et l'année de sortie, tri sur l'année
5.3. afficher le film et l'année de sortie, sur une année
5.4. afficher le film et l'année de sortie, depuis une année
6. AFFICHER LE CONTENU DE DEUX TABLES LIEES PAR UNE TABLE INTERMEDIAIRE DE TYPE n-n
6.1. Edition triée des genres par films
6.2. Edition triée des films par genres
6.3. Edition triée des films par genres
6.4. Edition du nombre de films par genre et avec du texte


. Introduction

L'objectif est l'utilisation d'une base de données pour gérer une liste de films avec l'année de sortie ou de réalisation ainsi que le genre du film un peu comme IMDB
Le nom donné à cette base sera AMDB

Hypothèses
Le film a un seul nom Un film a une seule année de sortie, et peut avoir un ou plusieurs genres 3 tableaux seront utilisés un comportant le nom des films, un autre les années et un troisième les genres. Le tableau année pourra servir à d'autres relations avec d'autres tableaux dans le cas d'une extension de la base. Il faudra créer un 4è tableau pour les relations multiples entre les films et les genres ( Tab_film_genre).

Relations entre les tables

./images/relations.JPG

1. CREATION DE LA BASE DE DONNEES

Juste après l'installation, vous avez des palettes de composants en plus :

./images/1.JPGSélectionner postgrest – ajouter une objet - ajouter une base de données
./images/2.JPGindiquer le nom de la base amdb
on obtient

./images/3.JPG

2. CREATION DES TABLES


2.1. TABLE GENRE


2.1.1. Ouvrir schéma public

./images/4.JPG ensuite table , souris bouton droit sélectionner ajouter une table
./images/5.JPG Ajout d'une table tabgenre Et validation
./images/6.JPG La table est crée
./images/7.JPG

2.1.2. création des colonnes

La table comporte 2 colonnes Genre et idgenre, idgenre sera utilisée comme clé primaire avec incrémentation automatique

./images/8.JPG Ajout des colonnes
./images/9.JPGNom de la colonne : idgenre
./images/10.JPG sélectionner le type de données sérial pour l'incrémentation automatique valider la commande par ok
./images/11.JPG La colonne idgenre est créée
./images/12.JPG Création de la colonne genre De 40 caractères Non nuls
./images/13.JPG La table contient 2 colonnes :genre et idgenre

2.1.3. création d'une clé primaire

./images/14.JPG
./images/15.JPG nom de la clé : clégenre
./images/16.JPG ensuite sélectionner colonne
Sélectionner comme colonne idgenre correspondant à clé primaire Ajouter et ok

2.1.4. Visualiser le contenu d'une table

./images/17.JPG
./images/18.JPG il n'y a rien , seules les colonnes apparaissent

2.1.5. Le panneau sql affiche les commandes, pour la colonne idgenre :

./images/19.JPG

2.1.6. table année tabannée

./images/20.JPG 2 colonnes :
idannée type serial
année type nombreentier
cléannée clé primaire sur idannée

2.1.7. table film tabfilm

./images/21.JPG et enfin la table tabfilm
idfilm : type serial, titre : type 40 caractères, annéesortie : type entier (clé etrangère, pointe sur la tabannée). )
cléfilm clé primaire colonne idfilm
./images/22.JPG

2.2. RELATION UN A PLUSIEURS ENTRE DEUX TABLES

Entre film et année, une seule année de sortie pour un film et plusieurs films pour une année
( Créer une colonne du type annéesortie dans tabfilm)
La colonne annéesortie de la table tabfilm va pointer sur la cléannée de tabannée type de relation n – 1
Annéesortie et cléannée sont de même type intéger
La clé étrangère est créée dans la table ou il y a « plusieurs »


2.2.1.. Créer une clé étrangère

./images/23.JPG
./images/24.JPGNom de la clé étrangère = keyannée

Référence = la table tabannée
./images/25.JPG

2.3. RELATION PLUSIEURS A PLUSIEURS ENTRE DEUX TABLES

Entre film et genre, plusieurs genres pour un film et plusieurs films pour un genre

Relation entre deux tables du type 1- n et n - 1
Une table intermédiaire est nécessaire


2.3.1. table intermédiaire entre tabfilm et tagenre

./images/26.JPG Créer une table intermédiaire ou de jointure tab_film_genre
./images/27.JPG avec 3 colonnes
la 1ère pour la clé de la table key de type serial
la 2è pour pointer sur la clé du tableau tabfilm nom de la colonne film type entier
la 3è pour pointer sur la clé de tabgenre nom de la colonne genre type entier
clé primaire sur colonne key

2.3.2. Ajouter les clés étrangères pour les liaisons avec tabfilm et tabgenre

./images/28.JPG Créer une clé étrangère ayant pour nom titre et référence la table tabfilm

ensuite
./images/29.JPG définir la colonne locale film qui va correspondre à la clé idfilm de tabfilm.

2.3.2. Créer une deuxième clé étrangère genre

./images/30.JPG genre
qui a pour référence la table tabgenre
./images/31.JPG avec colonne locale genre et
référencé dans le tableau tabgenre par la clé de ce tableau idgenre
./images/32.JPG Résultat
./images/33.JPG

3. INSERER LES DONNEES DANS LES TABLES


3.1.

./images/34.JPG Pour insérer des données dans une table utiliser la fonction script : cliquer sur l'icône SQL
./images/35.JPG On obtient

3.2. Insérer les genres ligne par ligne pour le tableau genre

./images/36.JPG on indique le nom du tableau et ensuite les valeurs dans l'ordre des colonnes
idgenre = 1 et genre = comédie
INSERT INTO tabgenre VALUES ( 1,'comédie');
./images/37.JPG ou uniquement la valeur de genre, idgenre sera automatiquement incrémenté
INSERT INTO tabgenre(genre) VALUES ( 'drame');
./images/38.JPG résultats
./images/39.JPG ajouter les genres suivants
INSERT INTO tabgenre(genre) VALUES ( 'policier');
INSERT INTO tabgenre(genre) VALUES ('horreur');
INSERT INTO tabgenre(genre) VALUES ('aventure');
INSERT INTO tabgenre(genre) VALUES ( 'histoire');
INSERT INTO tabgenre(genre) VALUES ( 'fiction');

3.3. Insérer des données dans tabannée

./images/40.JPG INSERT INTO tabannée(année) VALUES ( 2000');

3.4. Insérer des données dans tabfilm

./images/41.JPG ajouter des films
INSERT INTO tabfilm(titre,annéesortie) VALUES ( 'Men ', 2);
INSERT INTO tabfilm(titre,annéesortie) VALUES ('Forge', 3);
INSERT INTO tabfilm(titre,annéesortie) VALUES ( 'Star', 4);
INSERT INTO tabfilm(titre,annéesortie) VALUES ( 'histoire', 2);
INSERT INTO tabfilm(titre,annéesortie) VALUES ( 'Soleil' , 1);

3.5. Insérer des données dans tab_film_genre

./images/42.JPG structure de la table
./images/43.JPG INSERT INTO tab_film_genre(film,genre) VALUES ( 4,2);
INSERT INTO tab_film_genre(film,genre) VALUES ( 1,1);
INSERT INTO tab_film_genre(film,genre) VALUES ( 1,4);
INSERT INTO tab_film_genre(film,genre) VALUES ( 3,2);
INSERT INTO tab_film_genre(film,genre) VALUES ( 2,3);
INSERT INTO tab_film_genre(film,genre) VALUES ( 2,6);
INSERT INTO tab_film_genre(film,genre) VALUES ( 1,1);
./images/44.JPG Contenu de la table

4. POUR AFFICHER LE CONTENU D'UNE SEULE TABLE


4.1. le contenu d'une table

./images/45.JPG SELECT * from tabannée;

4.2. Le contenu d'une colonne d'une table

./images/46.JPG SELECT année FROM tabannée;

4.3. Le contenu sélectionné d'une colonne d'une table

./images/47.JPG SELECT année FROM tabannée WHERE année>2000;

4.4. Le contenu trié d'une colonne d'une table

./images/48.JPG SELECT * FROM tabannée ORDER BY année;
./images/49.JPG ou SELECT année FROM tabannée ORDER BY année Pour afficher la colonne année

4.5. Même principe pour genre

./images/50.JPG

4.6. Compter le nombre de films

./images/51.JPG pour la liste des films
SELECT titre FROM tabfilm;
./images/52.JPGpour le nombre de films
SELECT count( titre )FROM tabfilm;

5. AFFICHER LE CONTENU DE DEUX TABLES LIEES PAR UNE CLE ETRANGERE


5.1. Afficher le film et l'année de sortie

./images/53.JPGSELECT F.titre,A.année FROM tabfilm AS F, tabannée AS A WHERE A.idannée=F.annéesortie

5.2. afficher le film et l'année de sortie, tri sur l'année

./images/54.JPGSELECT tabfilm.titre,tabannée.année FROM tabfilm , tabannée WHERE tabannée.idannée=tabfilm.annéesortie ORDER BY année
il est plus rapide de remplacer le nom de la table par une lettre
SELECT F.titre,A.année FROM tabfilm AS F, tabannée AS A WHERE A.idannée=F.annéesortie ORDER BY année

5.3. afficher le film et l'année de sortie, sur une année

./images/55.JPGSELECT F.titre,A.année FROM tabfilm AS F, tabannée AS A WHERE A.idannée=F.annéesortie and a.année=2000

5.4. afficher le film et l'année de sortie, depuis une année

./images/56.JPGSELECT F.titre,A.année FROM tabfilm AS F, tabannée AS A WHERE A.idannée=F.annéesortie and a.année>2000

6. AFFICHER LE CONTENU DE DEUX TABLES LIEES PAR UNE TABLE INTERMEDIAIRE DE TYPE n-n

./images/57.JPGtabfilm F
./images/58.JPGtab_film_genre A
./images/59.JPGtabgenre G

6.1. Edition triée des genres par films

./images/60.JPGSELECT F.titre,G.genre
FROM tabfilm AS F, tabgenre AS G ,tab_film_genre AS A
where
F.idfilm = A.film
AND
A.genre=G.idgenre
ORDER BY titre, genre

6.2. Edition triée des films par genres

./images/61.JPGSELECT F.titre,G.genre
FROM tabfilm AS F, tabgenre AS G ,tab_film_genre AS A where F.idfilm = A.film AND A.genre=G.idgenre
ORDER BY genre,titre
./images/62.JPGVariante avec du texte

6.3. Edition triée des films par genres

./images/63.JPG

6.4. Edition du nombre de films par genre et avec du texte

./images/64.JPG


               Version hors-ligne (Miroir)

Valid XHTML 1.1!Valid CSS!

Copyright © 2007 L. Danichert. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsable bénévole de la rubrique PostgreSQL : Damien Griessinger (HpAlpha) - Contacter par EMail :
Vos questions techniques : forum d'entraide PostgreSQL - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.