IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Prise en main de PostgreSQL pour les débutants à l'aide de pgAdmin III

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. ♪

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. 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 trois 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 4e tableau pour les relations multiples entre les films et les genres (Tab_film_genre).

Relations entre les tables

Image non disponible

II. CRÉATION DE LA BASE DE DONNÉES

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

Image non disponible

Sélectionner postgrest - ajouter un objet - ajouter une base de données

Image non disponible

indiquer le nom de la base amdb

on obtient :

Image non disponible

III. CRÉATION DES TABLES

III-A. TABLE GENRE

III-A-1. Ouvrir schéma public

Image non disponible

ensuite table , souris bouton droit sélectionner ajouter une table

Image non disponible

Ajout d'une table tabgenre Et validation

Image non disponible

La table est créée

Image non disponible

III-A-2. création des colonnes

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

Image non disponible

Ajout des colonnes

Image non disponible

Nom de la colonne : idgenre

Image non disponible

sélectionner le type de données sérial pour l'incrémentation automatique valider la commande par OK

Image non disponible

La colonne idgenre est créée

Image non disponible

Création de la colonne genre De 40 caractères non nuls

Image non disponible

La table contient deux colonnes :genre et idgenre

III-A-3. création d'une clé primaire

Image non disponible
Image non disponible

nom de la clé : clégenre

Image non disponible

ensuite sélectionner colonne

Sélectionner comme colonne idgenre correspondant à clé primaire Ajouter et OK

III-A-4. Visualiser le contenu d'une table

Image non disponible
Image non disponible

il n'y a rien, seules les colonnes apparaissent

III-A-5. Le panneau sql affiche les commandes, pour la colonne idgenre :

Image non disponible

III-A-6. table année tabannée

Image non disponible

Deux colonnes :

idannée type serial

année type nombreentier

cléannée clé primaire sur idannée

III-A-7. table film tabfilm

Image non disponible

et enfin la table tabfilm

idfilm : type serial, titre : type 40 caractères, annéesortie : type entier (clé étrangère, pointe sur la tabannée). )

cléfilm clé primaire colonne idfilm

Image non disponible

III-B. RELATION UN À 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 »

III-B-1. Créer une clé étrangère

Image non disponible
Image non disponible

Nom de la clé étrangère = keyannée

Référence = la table tabannée

Image non disponible

III-B-2. RELATION PLUSIEURS À 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

III-B-2-a. table intermédiaire entre tabfilm et tagenre
Image non disponible

Créer une table intermédiaire ou de jointure tab_film_genre

Image non disponible

avec 3 colonnes

la 1re pour la clé de la table key de type serial

la 2e pour pointer sur la clé du tableau tabfilm nom de la colonne film type entier

la 3e pour pointer sur la clé de tabgenre nom de la colonne genre type entier

clé primaire sur colonne key

III-B-2-b. Ajouter les clés étrangères pour les liaisons avec tabfilm et tabgenre
Image non disponible

Créer une clé étrangère ayant pour nom titre et référence la table tabfilm

ensuite

Image non disponible

définir la colonne locale film qui va correspondre à la clé idfilm de tabfilm.

III-B-2-c. Créer une deuxième clé étrangère genre
Image non disponible

genre

qui a pour référence la table tabgenre

Image non disponible

avec colonne locale genre et

référencé dans le tableau tabgenre par la clé de ce tableau idgenre

Image non disponible

Résultat

Image non disponible

III-C. INSÉRER LES DONNÉES DANS LES TABLES

III-C-1. Insérer les données

Image non disponible

Pour insérer des données dans une table, utiliser la fonction script : cliquer sur l'icône SQL

Image non disponible

On obtient

III-C-2. Insérer les genres ligne par ligne pour le tableau genre

Image non disponible

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');

Image non disponible

ou uniquement la valeur de genre, idgenre sera automatiquement incrémenté

INSERT INTO tabgenre(genre) VALUES ( 'drame');

Image non disponible

résultats

Image non disponible

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');

III-C-3. Insérer des données dans tabannée

Image non disponible

INSERT INTO tabannée(année) VALUES ( 2000');

III-C-4. Insérer des données dans tabfilm

Image non disponible

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);

III-C-5. Insérer des données dans tab_film_genre

Image non disponible

structure de la table

Image non disponible

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);

Image non disponible

Contenu de la table

III-D. POUR AFFICHER LE CONTENU D'UNE SEULE TABLE

III-D-1. le contenu d'une table

Image non disponible

SELECT * from tabannée;

III-D-2. Le contenu d'une colonne d'une table

Image non disponible

SELECT année FROM tabannée;

III-D-3. Le contenu sélectionné d'une colonne d'une table

Image non disponible

SELECT année FROM tabannée WHERE année>2000;

III-D-4. Le contenu trié d'une colonne d'une table

Image non disponible

SELECT * FROM tabannée ORDER BY année;

Image non disponible

ou SELECT année FROM tabannée ORDER BY année Pour afficher la colonne année

III-D-5. Même principe pour genre

Image non disponible

III-D-6. Compter le nombre de films

Image non disponible

pour la liste des films

SELECT titre FROM tabfilm;

Image non disponible

pour le nombre de films

SELECT count( titre )FROM tabfilm;

III-E. AFFICHER LE CONTENU DE DEUX TABLES LIÉES PAR UNE CLÉ ÉTRANGÈRE

III-E-1. Afficher le film et l'année de sortie

Image non disponible

SELECT F.titre,A.année FROM tabfilm AS F, tabannée AS A WHERE A.idannée=F.annéesortie

III-E-2. afficher le film et l'année de sortie, tri sur l'année

Image non disponible

SELECT 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

III-E-3. afficher le film et l'année de sortie, sur une année

Image non disponible

SELECT 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

III-E-4. afficher le film et l'année de sortie, depuis une année

Image non disponible

SELECT 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

III-F. AFFICHER LE CONTENU DE DEUX TABLES LIÉES PAR UNE TABLE INTERMÉDIAIRE DE TYPE n-n

Image non disponible

tabfilm F

Image non disponible

tab_film_genre A

Image non disponible

tabgenre G

III-F-1. Édition triée des genres par films

Image non disponible

SELECT 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

III-F-2. Édition triée des films par genres

Image non disponible

SELECT 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

Image non disponible

Variante avec du texte

III-F-3. Édition triée des films par genres

Image non disponible

III-F-4. Édition du nombre de films par genre et avec du texte

Image non disponible

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

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