sq l commande
TRANSCRIPT
-
7/25/2019 Sq l Commande
1/24
-
7/25/2019 Sq l Commande
2/24
*ig(
+a$ue ralisateur doit avoir un identifiant en !lus de son nom et
de son !rnom.
n doit s!cifier le genre du film et lui donner un identifiant.
-our c+a$ue film, on doit donner un identifiant et un titre. Le
genre et le ralisateur du film doivent tre indi$us dans la table /
film .
+a$ue film doit tre ralis !ar un seul ralisateur et un
ralisateur !eut raliser !lusieurs films.
+a$ue film n'a $u'un seul genre mais un mme genre !eut tre
attribu !lusieurs films.
III. Cration de la base sur Microsoft SQL Server
http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/ -
7/25/2019 Sq l Commande
3/24
n commence !ar lancer le logiciel !artir de l'ic1ne de Microsoft SQL Server
Management.
-our se connecter au serveur, on cli$ue sur / onnect de la fentre ci
dessous &fig2).
*ig2
ne nouvelle fentre s'ouvre, elle re!rsente l'interface initiale de l'outil &fig
3).
-
7/25/2019 Sq l Commande
4/24
*ig3
n voit $ue cette fentre est divise en deu" !arties, d'une !art la fentre /4"!lorer gauc+e $ui nous affic+e tout les ob5ets du serveur et nous
!ermet de naviguer entre ces diffrents com!osants 6 la !artie droite est une
autre fentre $ui nous montre les donnes et les informations sous forme desommaire.
-our crer notre table, on doit cli$uer avec le bouton droit sur / Databases
dans la fentre / 4"!lorer , !uis on cli$ue sur / #e7 Database &fig).
-
7/25/2019 Sq l Commande
5/24
*ig
Dans la nouvelle fentre $ui s'affic+e, on va donner le nom /*9LM notre
base !uis on cli$ue sur / : &fig;).
-
7/25/2019 Sq l Commande
6/24
*ig;
n !eut maintenant voir, !artir de la fentre / 4"!lorer , $ue notre baseest cre &fig
-
7/25/2019 Sq l Commande
7/24
#ous savons $ue notre base doit contenir trois tables, nous allons les crer
maintenant.
=ou5ours dans la fentre / 4"!lorer on cli$ue avec le bouton droit sur /
=ables dans notre base / *9LM, !uis on cli$ue sur / #e7 =able &fig>).
*ig>
? droite et la mme !lace de la fentre / Sommaire une nouvelle fentres'ouvre, dans la$uelle on doit saisir toutes les colonnes de la table &fig8).
*ig8
@!rAs avoir saisi toutes ces donnes, on ferme cette fentre. ne nouvellefentre s'ouvre et nous demande si on veut enregistrer les c+angements
effectus, on cli$ue alors sur / Bes !our confirmer &figC).
-
7/25/2019 Sq l Commande
8/24
*igC
ne autre fentre s'ouvre, dans la$uelle on va saisir le nom de la table
dsire !uis on cli$ue sur / : &fig(0).
*ig(0
n refait les mmes ta!es avec les tables / alisateur et / Eenre comme le montre les deu" figures cidessous &fig(() et &fig(2).
*ig((
*ig(2
#os trois tables sont maintenant cres. -our vrifier $ue la cration est bien
ralise on !eut naviguer dans la fentre / 4"!lorer et voir si nos trois
tables e"istent vraiment &fig(3).
-
7/25/2019 Sq l Commande
9/24
*ig(3
n voit bien $ue les trois tables sont cres sur notre base.
III-B. Cration des cls
III-B-1. Cls priaires
#otre base est forme de 3 tables, c+acune des tables devant contenir une
cl !rimaire. Dans l'ta!e suivante, nous allons crer ces cls.
ommenFons !ar la table / *ilm , cette table a comme cl !rimaire la
colonne / 9d film .
? !artir de la fentre / 4"!lorer , nous allons aller sur la colonne / 9d film ,un clic droit !uis on cli$ue sur / ModifG &fig().
*ig(
http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/ -
7/25/2019 Sq l Commande
10/24
ette table va s'affic+er dans la fentre droite, on slectionne la colonne
$u'on veut dfinir comme cl !rimaire !uis dans la barre en +aut on doit
cli$uer sur .
n remar$ue $u'une !etite cl 5aune s'affic+e cot de cette colonne &fig(;).
*ig(;
Lors$u'on ferme cette fentre une autre fentre s'affic+e !our vrifier si onveut enregistrer les c+angements, alors on cli$ue sur / Bes &fig(
-
7/25/2019 Sq l Commande
11/24
*ig(>
@lors voil comment doit s'affic+er la cl !rimaire.
n refait le mme travail !our les autres tables &fig(8) &fig(C).
*ig(8
*ig(C
Maintenant, toutes les cls !rimaires sont cres.
III-B-!. Cls tran"#res
#ous savons $ue notre base contient trois tables, mais uni$uement la table /*ilm contient des cls trangAres.
#ous allons maintenant voir comment crer une cl trangAre dans Microsoft
SQL Server.
ommenFons !ar un clic droit sur / HeGs dans la fentre / 4"!lorer !uison cli$ue sur /#e7 *oreign HeG &fig20).
http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/ -
7/25/2019 Sq l Commande
12/24
*ig20
Dans la nouvelle fentre $ui s'ouvre, on va commencer !ar donner un nom
cette cl trangAre / *HI*ilmIalisateur &fig2().
*ig2(
4nsuite, on cli$ue sur / =ables @nd olumns S!ecification et une nouvelle
fentre s'ouvre dans la$uelle on va dfinir la cl trangAre et la cl !rimaire!uis on cli$ue sur / H &fig22).
-
7/25/2019 Sq l Commande
13/24
*ig22
Lors$u'on revient la fentre suivante, on !eut modifier et mettre / en
cascade sur les relations entre la cl trangAre et la cl !rimaire !our lasu!!ression et les mises 5our &fig23) !uis on cli$ue sur / lose .
*ig23
n ferme cette table, un message !our l'enregistrement s'affic+e, on cli$ue
alors sur / Bes et une autre fentre s'affic+e !our nous informer $u'il G a eu
des c+angements dans deu" tables de notre base. n cli$ue sur / Bes !ourenregistrer &fig2).
-
7/25/2019 Sq l Commande
14/24
*ig2
n !eut vrifier maintenant, dans la fentre / 4"!lorer , l'e"istence de notre
cl trangAre &fig2;).
*ig2;
*aisons nouveau ce mme travail !our crer notre deu"iAme cl trangArela cl / 9dI*ilmIEenre .
#otre table doit contenir la fin une cl !rimaire et deu" cls trangAres &fig
2
-
7/25/2019 Sq l Commande
15/24
n !eut dire maintenant $ue notre base est com!lAte et il ne reste $u' saisir
des donnes dans cette base.
III-C. Saisir les donnes dans les tables
ommenFons !ar saisir les donnes dans la table genre.
n clic droit sur la table / Eenre !uis on cli$ue sur / 4dit =o! 200 o7s &fig2>).
*ig2>
La table va s'ouvrir droite et on saisit les donnes comme dans l'e"em!lecidessous &fig28).
*ig28
#otre base va com!orter $uatre genres de films, savoir % @ction, omdie,
omanti$ue et Dramati$ue.
Les numros de ( sont les identificateurs de c+a$ue genre.
Maintenant comme la table de genre est cre on va !asser la table deralisateur.
http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/ -
7/25/2019 Sq l Commande
16/24
-our cela, effectuons le mme travail. n saisit donc les donnes !our $ue la
table se !rsente de la faFon suivante &fig2C).
*ig2C
@insi, la liste des ralisateurs est !rte.
-our rem!lir la table / *ilm , il faut seulement !rciser l'identificateur dugenre et celui de ralisateur.
Suivons les mmes ta!es !our saisir des donnes dans la table / *ilm !our $u'elle s'affic+e de la faFon suivante &fig30).
-
7/25/2019 Sq l Commande
17/24
*ig30
III-$. %&eple de re'u(tes
JoGons maintenant comment nous !ouvons utiliser les re$utes sur MicrosoftSQL Server et e"cuter $uel$ues e"em!les de ces re$utes.
n va essaGer d'affic+er les films raliss !ar l'un des ralisateurs de notre
table.
D'abord il faut trouver l'identifiant du ralisateur dans la table /alisateur ,
!ar e"em!le le ralisateur / Ko+n oo .
http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/ -
7/25/2019 Sq l Commande
18/24
n cli$ue sur , une nouvelle fentre s'ouvre droite et on saisit la
re$ute suivante %
SlectionneSELECT*FROM[FILM].[dbo].[Ralisateur]WERE[!rnom]"#$o%n#and[&om]"#Woo#
n cli$ue alors sur voir &fig3().
*ig3(
4n e"cutant, le rsultat va s'affic+er en bas &fig32).
*ig32
#ous connaissons maintenant l'identifiant de ce ralisateur, ce $ui nous
!ermet de c+erc+er tous ses films dans la table / *ilm !ar la re$utesuivante % &fig33.
SlectionneSELECT*FROM[FILM].[dbo].[Film]WERE[Id'ralisateur]"(
*ig33
Le rsultat suivant s'affic+e &fig3).
-
7/25/2019 Sq l Commande
19/24
*ig3
I). Conclusion
#ous avons vu $ue l'utilisation de Microsoft SQL Server est sim!le. 9l est
galement !ossible de crer des bases de donnes !lus com!li$ues en
utilisant l'outil SQL server Manager.
IntroductionLes requtes Slection(abordes dans les chapitres prcdents) permettent
dinterrogerune base de donnes sans possibilit de modifier les donnes. Il estainsi possible de :
- dafficher les donnes dun ou plusieurs champs de tables (SELE!)- dafficher des li"nes dune table rpondant # une condition prcise
($%E&E)- de re"rouper des enre"istrements ('&* +,) et deffectuer des calculs
(! S/ 01E&0'E /I /023)- dimbriquer des requtes (I (SELE!3) 4 ! I(SELE!3)
Les requtes 5 action 6 (terminolo"ie 0ccess) permettent de modifier les donnes
contenues dans les tables il sa"it :- des requtes 07out (ISE&!) pour a7outer des enre"istrements dans une
table- des requtes /ise # 7our (*80!E) qui permettent de modifier la 9aleur de
certains champs- des requtes Suppression (8ELE!E) qui permettent de supprimer des
enre"istrements dune table
Remarque:- Les tpes de requtes 9oqus ci-dessous mettent en ;u9re un lan"a"e de
manipulation de donnes. 8autres tpes de requtes e??? il faut saisir en dur le code S=L dans loutil 5 analseurde requtes 6
http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/http://a-vimory.developpez.com/tutoriels/sql-server-2008-films/ -
7/25/2019 Sq l Commande
20/24
I. Les requtes Ajout
A. Principe
Les requtes 07out permettent dinsrer des enre"istrements dans une table soit #
partir dune liste de 9aleurs soit # partir denre"istrement dune autre tableSyntaxe 1: 07out dune liste de 9aleur
INSERT INTONomTable(champ1, champ2, champ3...) VALUES(valeur1, valeur2,
valeur3,...)
!ERECondition
Remarque":
les 9aleurs de tpe te??? doi9ent se mettre entre @ @("uillemets simples). Sous 0ccess on peut utiliser indiffremment les
"uillemets simples ou les apostrophes (5 ) Le nombre de 9aleurs doit correspondre au mme nombre de champs.
Lordre des 9aleurs doit correspondre # lordre des champsRa##el : les noms de champs comportant des espaces doi9ent se mettre entre
crochets
-
7/25/2019 Sq l Commande
21/24
Syntaxe $: a7out denre"istrement pro9enant dune autre tableINSERT INTONomTableDestination(champ1, champ2, champ3...)
SELE%T champA, ChampB, Champ C
&RO'NomTableSource
!ERECondition
La premiAre li"ne contient le nom de la table et les champs destinataires Les li"nes sui9antes indiquent la pro9enance des donnes sources La clause $%E&E est facultati9e Le nombre de champs de la table destination doit tre le mme que le nombre
de champs dfinis dans la table destination. 8e plus les tpes de donnes
doi9ent tre compatibles faute de quoi la7out denre"istrements ne peut passe faire.
B. Applications
1ous disposeB du SL8 relationnel sui9ant relatif # la "estion dune bibliothAque de
prt dou9ra"es :'E&E(ode'enre Libelle'enre)
0!E&(C0uteur *ren0ut om0ut)
E8I!E&(CEditeur omEditeur)
08%E&E!(C0dh om0dh *ren0dh &ue0dh 1ille0dh DC0dh*arent)
E/*&!(DC0dh DCLi9re D8ateEmprunt 8ate&etour)
LI1&E8IS*I+LE(CLi9re !itreLi9re annee Dode'enre DCEditeur DC0uteur)
LI1&EE0!!E!E(CLi9re !itreLi9reannee EtatLi9re Dode'enre DCEditeur
DC0uteur)
%ommentaire :
n li9re est soit disponible pour le prt soit en attente. n li9re peut tre en attentesil est 5 en commande 6 5 en rparation 6 ou 5 # prparer 6. Lorsquun li9re en
attente de9ient 5 F 6 il est a7out # la table LI1&E8IS*I+LE et estsupprim de la table LI1&EE0!!E!E.
G) &ormulela requte S=L permettant da7outer le li9re sui9ant dans la table
LI1&E8IS*I+LE :GHJKH>G0 - 5 n amour de *G? 6 - >??M- 5 SN 6 - Editeur : G - auteur : M
ISE&! I! LI1&E8IS*I+LE(CLi9re annee ode'enreCEditeurC0uteur)
10LES(@GHJKH>G0 @n amour de *G? >??M G M) 4
>) &ormulela requte S=L permettant da7outer tous les li9res 5 F 6 de latable LI1&EE0!!E!E dans la table LI1&E8IS*I+LE
ISE&! I! LI1&E8IS*I+LE CLi9re !itreLi9reode'enre CEditeur
C0uteur )SELE! CLi9re !itreLi9reode'enre CEditeur C0uteur
-
7/25/2019 Sq l Commande
22/24
N&/ LI1&EE0!!E!E
$%E&E EtatLi9reOPFP 4
-
7/25/2019 Sq l Commande
23/24
II. Les requtes mises jour
A. Principes
Les requtes mises # 7our permettent de modifier un ou plusieurs
enre"istrements automatiquement.
Syntaxe SL:U*+ATENomTable
SETNomChamp= nouvellevaleur
!ERE Condition
B. Applications
G) &ormulela requte S=L permettant de modifier lerreur sui9ante : 8ans la
base de donnes +I+LI!%E=E lauteur Qohn S08N&8 sappelle enralit Qohn S!0N&
*80!E 0!E&
SE! om0utOS!0N&
$%E&E om0utOS08N&8 08 *ren0utOQohn 4
>) Soit le
-
7/25/2019 Sq l Commande
24/24
III. Les requtes suppression
A. Principes
ne requte suppression a pour effet de supprimer tous les enre"istrements
dune table rpondant # une condition dtermine
Syntaxe SL ,+ELETET
&RO'NomTable
!ERECondition
Remarque: lastrisque indique que tous les champs de la table sont
slectionns (Sous S=L Ser9er ne pas lutiliser)
B. Applications
G) 0 partir du SL8 relationnel de la bibliothAque de prt "u##rimetous lesenre"istrements de la table LI1&EE0!!E!E qui ont ltat @F
8ELE!E T
N&/ LI1&EE0!!E!E
$%E&E EtatLi9reOF 4
>) n souhaite retirer de la bibliothAque tous les li9res naant fait lob7et
daucun emprunt8ELE!E T
N&/ LI1&E8IS*I+LE
$%E&E CLi9re ! I (SELE! CLi9re N&/ E/*&!) 4
%onclu"ion :Les requtes 0ction na"issent que sur une seule table. /ais on peut poser des
conditions comple