Sq l Commande

download Sq l Commande

of 24

Transcript of Sq l Commande

  • 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