Vous êtes sur la page 1sur 24

I.

Introduction
Dans ce document, nous allons crer une base de donnes sur Microsoft SQL
Server 2008 l'aide de Microsoft SQL Server Management, et on va
introduire des donnes dans cette base.
Ce document va permettre aux utilisateurs de faciliter le travail sur Microsoft
SQL Server et leur montrer comment exploiter les principales fonctionnalits
de l'outil Microsoft SQL Server Management.

II. Prsentation de la base de donne raliser


Nous allons crer une petite base de donnes qui sera utilise pour trier des
films selon leurs genres et leurs ralisateurs.
Comme
le
montre
l'exemple,
cette
tables : Film, Ralisateur et Genre (fig-1).

base

comporte

trois

Fig-1

Chaque ralisateur doit avoir un identifiant en plus de son nom et


de son prnom.

On doit spcifier le genre du film et lui donner un identifiant.

Pour chaque film, on doit donner un identifiant et un titre. Le


genre et le ralisateur du film doivent tre indiqus dans la table
film .

Chaque film doit tre ralis par un seul ralisateur et un


ralisateur peut raliser plusieurs films.

Chaque film n'a qu'un seul genre mais un mme genre peut tre
attribu plusieurs films.

III. Cration de la base sur Microsoft SQL Server

On commence par lancer le logiciel partir de l'icne de Microsoft SQL Server


Management.
Pour se connecter au serveur, on clique sur Connect de la fentre cidessous (fig-2).

Fig-2
Une nouvelle fentre s'ouvre, elle reprsente l'interface initiale de l'outil (fig3).

Fig-3
On voit que cette fentre est divise en deux parties, d'une part la fentre
Explorer gauche qui nous affiche tout les objets du serveur et nous
permet de naviguer entre ces diffrents composants ; la partie droite est une
autre fentre qui nous montre les donnes et les informations sous forme de
sommaire.
Pour crer notre table, on doit cliquer avec le bouton droit sur Databases
dans la fentre Explorer , puis on clique sur New Database (fig-4).

Fig-4
Dans la nouvelle fentre qui s'affiche, on va donner le nom FILM notre
base puis on clique sur Ok (fig-5).

Fig-5
On peut maintenant voir, partir de la fentre Explorer , que notre base
est cre (fig-6).

Fig-6

III-A. Cration des tables

Nous savons que notre base doit contenir trois tables, nous allons les crer
maintenant.
Toujours dans la fentre Explorer on clique avec le bouton droit sur
Tables dans notre base FILM, puis on clique sur New Table (fig-7).

Fig-7
droite et la mme place de la fentre Sommaire une nouvelle fentre
s'ouvre, dans laquelle on doit saisir toutes les colonnes de la table (fig-8).

Fig-8
Aprs avoir saisi toutes ces donnes, on ferme cette fentre. Une nouvelle
fentre s'ouvre et nous demande si on veut enregistrer les changements
effectus, on clique alors sur Yes pour confirmer (fig-9).

Fig-9
Une autre fentre s'ouvre, dans laquelle on va saisir le nom de la table
dsire puis on clique sur Ok (fig-10).

Fig-10
On refait les mmes tapes avec les tables Ralisateur et Genre
comme le montre les deux figures ci-dessous (fig-11) et (fig-12).

Fig-11

Fig-12
Nos trois tables sont maintenant cres. Pour vrifier que la cration est bien
ralise on peut naviguer dans la fentre Explorer et voir si nos trois
tables existent vraiment (fig-13).

Fig-13
On voit bien que les trois tables sont cres sur notre base.

III-B. Cration des cls


III-B-1. Cls primaires
Notre base est forme de 3 tables, chacune des tables devant contenir une
cl primaire. Dans l'tape suivante, nous allons crer ces cls.
Commenons par la table Film , cette table a comme cl primaire la
colonne Id film .
partir de la fentre Explorer , nous allons aller sur la colonne Id film ,
un clic droit puis on clique sur Modify (fig-14).

Fig-14

Cette table va s'afficher dans la fentre droite, on slectionne la colonne


qu'on veut dfinir comme cl primaire puis dans la barre en haut on doit
cliquer sur

On remarque qu'une petite cl jaune s'affiche cot de cette colonne (fig15).

Fig-15
Lorsqu'on ferme cette fentre une autre fentre s'affiche pour vrifier si on
veut enregistrer les changements, alors on clique sur Yes (fig-16).

Fig-16
Dans la fentre Explorer on peut vrifier si la cration da la cl primaire
est ralise correctement ou non (fig-17).

Fig-17
Alors voil comment doit s'afficher la cl primaire.
On refait le mme travail pour les autres tables (fig-18) (fig-19).

Fig-18

Fig-19
Maintenant, toutes les cls primaires sont cres.

III-B-2. Cls trangres


Nous savons que notre base contient trois tables, mais uniquement la table
Film contient des cls trangres.
Nous allons maintenant voir comment crer une cl trangre dans Microsoft
SQL Server.
Commenons par un clic droit sur Keys dans la fentre Explorer puis
on clique sur New Foreign Key (fig-20).

Fig-20
Dans la nouvelle fentre qui s'ouvre, on va commencer par donner un nom
cette cl trangre FK_Film_Ralisateur (fig-21).

Fig21
Ensuite, on clique sur Tables And Columns Specification et une nouvelle
fentre s'ouvre dans laquelle on va dfinir la cl trangre et la cl primaire
puis on clique sur OK (fig-22).

Fig-22
Lorsqu'on revient la fentre suivante, on peut modifier et mettre en
cascade sur les relations entre la cl trangre et la cl primaire pour la
suppression et les mises jour (fig-23) puis on clique sur Close .

Fig-23
On ferme cette table, un message pour l'enregistrement s'affiche, on clique
alors sur Yes et une autre fentre s'affiche pour nous informer qu'il y a eu
des changements dans deux tables de notre base. On clique sur Yes pour
enregistrer (fig-24).

Fig-24
On peut vrifier maintenant, dans la fentre Explorer , l'existence de notre
cl trangre (fig-25).

Fig-25
Faisons nouveau ce mme travail pour crer notre deuxime cl trangre
la cl Id_Film_Genre .
Notre table doit contenir la fin une cl primaire et deux cls trangres (fig26).

Fig-26

On peut dire maintenant que notre base est complte et il ne reste qu' saisir
des donnes dans cette base.

III-C. Saisir les donnes dans les tables


Commenons par saisir les donnes dans la table genre.
Un clic droit sur la table Genre puis on clique sur Edit Top 200 Rows
(fig-27).

Fig-27
La table va s'ouvrir droite et on saisit les donnes comme dans l'exemple
ci-dessous (fig-28).

Fig-28
Notre base va comporter quatre genres de films, savoir : Action, Comdie,
Romantique et Dramatique.
Les numros de 1 4 sont les identificateurs de chaque genre.
Maintenant comme la table de genre est cre on va passer la table de
ralisateur.

Pour cela, effectuons le mme travail. On saisit donc les donnes pour que la
table se prsente de la faon suivante (fig-29).

Fig-29
Ainsi, la liste des ralisateurs est prte.
Pour remplir la table Film , il faut seulement prciser l'identificateur du
genre et celui de ralisateur.
Suivons les mmes tapes pour saisir des donnes dans la table Film
pour qu'elle s'affiche de la faon suivante (fig-30).

Fig-30

III-D. Exemple de requtes


Voyons maintenant comment nous pouvons utiliser les requtes sur Microsoft
SQL Server et excuter quelques exemples de ces requtes.
On va essayer d'afficher les films raliss par l'un des ralisateurs de notre
table.
D'abord il faut trouver l'identifiant du ralisateur dans la table Ralisateur ,
par exemple le ralisateur John Woo .

On clique sur

, une nouvelle fentre s'ouvre droite et on saisit la

requte suivante :
Slectionnez
SELECT * FROM [FILM].[dbo].[Ralisateur] WHERE [Prnom]= 'John' and [Nom]=
'Woo'

On clique alors sur

voir (fig-31).

Fig-31
En excutant, le rsultat va s'afficher en bas (fig-32).

Fig-32
Nous connaissons maintenant l'identifiant de ce ralisateur, ce qui nous
permet de chercher tous ses films dans la table Film par la requte
suivante : (fig-33.
Slectionnez
SELECT * FROM [FILM].[dbo].[Film] WHERE [Id_ralisateur] = 2

Fig-33
Le rsultat suivant s'affiche (fig-34).

Fig-34

IV. Conclusion
Nous avons vu que l'utilisation de Microsoft SQL Server est simple. Il est
galement possible de crer des bases de donnes plus compliques en
utilisant l'outil SQL server Manager.

Introduction
Les requtes Slection (abordes dans les chapitres prcdents) permettent
dinterroger une base de donnes sans possibilit de modifier les donnes. Il est
ainsi possible de :
- dafficher les donnes dun ou plusieurs champs de tables (SELECT)
- dafficher des lignes dune table rpondant une condition prcise
(WHERE)
- de regrouper des enregistrements (GROUP BY) et deffectuer des calculs
(COUNT, SUM, AVERAGE, MIN, MAX,)
- dimbriquer des requtes (IN (SELECT) ; NOT IN(SELECT)
Les requtes action (terminologie Access) permettent de modifier les donnes
contenues dans les tables, il sagit :
- des requtes Ajout (INSERT) pour ajouter des enregistrements dans une
table
- des requtes Mise jour (UPDATE) qui permettent de modifier la valeur de
certains champs
- des requtes Suppression (DELETE) qui permettent de supprimer des
enregistrements dune table
Remarque :
- Les types de requtes voqus ci-dessous mettent en uvre un langage de
manipulation de donnes. Dautres types de requtes existent et visent
crer des tables ou modifier la structure dune table (langage de dfinition de
donnes) ;
- Le logiciel Microsoft Access autorise la cration des requtes Ajout, Mise
jour et Suppression partir dune interface graphique (langage QBE), sous
SQL Server 2000, il faut saisir en dur le code SQL dans loutil analyseur
de requtes

I. Les requtes Ajout


A. Principe
Les requtes Ajout permettent dinsrer des enregistrements dans une table soit
partir dune liste de valeurs, soit partir denregistrement dune autre table
Syntaxe 1 : Ajout dune liste de valeur
INSERT INTO NomTable(champ1,
valeur3,...)
WHERE Condition

champ2,

champ3,...) VALUES (valeur1,

valeur2,

Remarques :

les valeurs de type texte sous SQL Server 2000 doivent se mettre entre
(guillemets simples). Sous Access, on peut utiliser indiffremment les
guillemets simples ou les apostrophes ( )

Le nombre de valeurs doit correspondre au mme nombre de champs.


Lordre des valeurs doit correspondre lordre des champs
Rappel : les noms de champs comportant des espaces doivent se mettre entre
crochets

Syntaxe 2 : ajout denregistrement provenant dune autre table


INSERT INTO NomTableDestination(champ1, champ2, champ3,...)
SELECT champA, ChampB, Champ C
FROM NomTableSource
WHERE Condition

La premire ligne contient le nom de la table et les champs destinataires


Les lignes suivantes indiquent la provenance des donnes sources
La clause WHERE est facultative
Le nombre de champs de la table destination doit tre le mme que le nombre
de champs dfinis dans la table destination. De plus, les types de donnes
doivent tre compatibles faute de quoi lajout denregistrements ne peut pas
se faire.

B. Applications
Vous disposez du SLD relationnel suivant relatif la gestion dune bibliothque de
prt douvrages :
GENRE(CodeGenre, LibelleGenre)
AUTEUR(NAuteur, PrenAut, NomAut)
EDITEUR(NEditeur, NomEditeur)
ADHERENT(NAdh, NomAdh, PrenAdh, RueAdh, VilleAdh, #NAdhParent)
EMPRUNT(#NAdh, #NLivre, #DateEmprunt, DateRetour)
LIVRE_DISPONIBLE(NLivre, TitreLivre, annee, #CodeGenre, #NEditeur, #NAuteur)
LIVRE_EN_ATTENTE(NLivre, TitreLivre,annee , EtatLivre, #CodeGenre, #NEditeur,
#NAuteur)

Commentaire :
Un livre est soit disponible pour le prt soit en attente. Un livre peut tre en attente
sil est en commande , en rparation ou prparer . Lorsquun livre en
attente devient OK , il est ajout la table LIVRE_DISPONIBLE et est
supprim de la table LIVRE_EN_ATTENTE.
1) Formulez la requte SQL permettant dajouter le livre suivant dans la table
LIVRE_DISPONIBLE :
159875621A - Un amour de P10 - 2003- SF - Editeur : 1 - auteur : 3
INSERT INTO LIVRE_DISPONIBLE(NLivre, annee, CodeGenre,NEditeur,NAuteur)
VALUES(159875621A, Un amour de P10, 2003, 1, 3) ;

2) Formulez la requte SQL permettant dajouter tous les livres OK de la


table LIVRE_EN_ATTENTE dans la table LIVRE_DISPONIBLE
INSERT
INTO
LIVRE_DISPONIBLE NLivre ,
TitreLivre,CodeGenre, NEditeur ,
NAuteur )
SELECT NLivre , TitreLivre,CodeGenre, NEditeur , NAuteur

FROM LIVRE_EN_ATTENTE
WHERE EtatLivre='OK' ;

II. Les requtes mises jour


A. Principes
Les requtes mises jour permettent de modifier un ou plusieurs
enregistrements automatiquement.
Syntaxe SQL :
UPDATE NomTable
SET NomChamp= nouvellevaleur
WHERE Condition

B. Applications
1) Formulez la requte SQL permettant de modifier lerreur suivante : Dans la
base de donnes BIBLIOTHEQUE, lauteur John SANDFORD sappelle en
ralit John STANFOR
UPDATE AUTEUR
SET NomAut=STANFOR
WHERE NomAut=SANDFORD AND PrenAut=John ;

2) Soit lextrait du schma des relations suivant :


PRODUIT(NumProd, DsignProd, PrixAchat,
identifiants souligner
FOURNISSEUR(NumFour, NomFour)
CATEGORIE(CodeCat, LibellCat)

#CodeCat,

#NumFour) //

Le fournisseur ANOR MALLE vous a inform dune augmentation des prix de


10% des produits de la catgorie Bagages luxe .
Afin de Procder aux changements ncessaires dans la base de donnes,
formulez la requte SQL correspondante.
UPDATE PRODUIT
SET PrixAchat=PrixAchat*1.10
WHERE CodeCat IN (SELECT CodeCat FROM CATEGORIE
LibelleCat=Bagages luxe)
AND NumFour IN (SELECT NumFour FROM FOURNISSEUR
NomFour=ANOR MALLE) ;

WHERE
WHERE

III.

Les requtes suppression

A. Principes
Une requte suppression a pour effet de supprimer tous les enregistrements
dune table rpondant une condition dtermine
Syntaxe SQL :
DELETE *
FROM NomTable
WHERE Condition

Remarque : lastrisque indique que tous les champs de la table sont


slectionns (Sous SQL Server, ne pas lutiliser)

B. Applications
1) A partir du SLD relationnel de la bibliothque de prt, supprimez tous les
enregistrements de la table LIVRE_EN_ATTENTE qui ont ltat OK
DELETE *
FROM LIVRE_EN_ATTENTE
WHERE EtatLivre=OK ;

2) On souhaite retirer de la bibliothque, tous les livres nayant fait lobjet


daucun emprunt
DELETE *
FROM LIVRE_DISPONIBLE
WHERE NLivre NOT IN (SELECT NLivre FROM EMPRUNT) ;

Conclusion :
Les requtes Action nagissent que sur une seule table. Mais on peut poser des
conditions complexes sous forme de requtes imbriques dans une clause WHERE.
Les requtes Action prennent tous leur sens lorsquelles sont excutes
automatiquement lintrieur dun programme (procdure en VBA, page Web en
ASP,).