��#ࡱ#�################>###��

#################�###########�#######����####}###~###ࡱ###�###�###�###�###�###�###�#
##�###�###�###�###�###�###�###�###�###�###�###�###�###�###�###�###�

##b##�
##��������������������������������������������������������������������������������
����������������������������������������������������������������������������������
����������������������������������������������������������������������������������
������������������������������������������������������������������������������#I#

#####�################8####bjbj����################## .

###�� #��##��##y�######>###############�#######��##########��##########��################ ##]#####�######�##�######� ######X#######X#######X###############l#######l#######l#######l###8###�###�###`###� ###l#######~#######0"##6###f&######|&######|&######�&######Ot##�### �#######�##�###W#######Y#######Y#######Y###`###�###P### ###P###Y#######� %##�###v'##<###Y###%###################X#######��######################�f##� ##Ot######��######��######Y#######y�######�######�######| &##############�&###@##0"######y�######y�######y�######��##�`##�##�###| &##(###X#######�&######W#######################l#######l#######�######�######� ######�######��######W#######y�##�###y�######W�##�###g ##�###�###�###X###############################################################W#### ###�&##############00)#���#l#######l#######y�######�###\########################### ################################################################################### ############################Bases de donn�es�: SQLSupport de Formation n�1Mise � jour 3 mai 2001 (LR. MF)ObjectifsPr�sentation du langage SQL et de l�alg�bre relationnelInterrogation et mise � jour d�une base de donn�es en SQL interactif Construction compl�te d�une base de donn�esNotions d�administration d�une base de donn�es en Client/ServeurPr�sentation du mod�le client/serveurLa connexion ODBC et l�utilisation d�ACCESS comme clientMode d�emploiPour chacun des th�mes abord�s. ce support# #d#e# #f#o#r#m#a#t#i#o#n#�#:###p#r#�#s#e#n#t#e# #l#e#s# #p#o#i#n#t#s# #e#s#s#e#n#t#i#e#l#s###r#e#n#v#o#i#e# #�# #d#e#s# #s#u#p#p#o#r#t#s# #d#e# #c#o#u#r#s#. PG.# #p#a#r# #l#e# ##s#y#m#b#o#l#e#�#:# #&� �##-# # # # #p#r#o#p#o#s#e# #d#e#s# #e#x#e#r#c#i#c#e#s# #p#r#a#t#i#q#u#e#s# #p#a#r# #l#e# #s#y#m#b#o#l#e#�#:# #:�##A#u#t#r#e#s# #s#y#m#b#o#l#e#s#�#u#t#i#l#i#s#�#s#�#:# ###%� �P#o#i#n#t# #i#m#p#o#r#t#a#n#t# #q#u#i# #m#�#r#i#t#e# #d## �#t#r#e# #s#o#u#l#i#g#n#�###A# #�#v#i#t#e#r#�#�# #t#o#u#t# #p#r#i#x# #!#�###J� #M#a#n#i#p# #�# #r#�#a#l#i#s#e#r# #a#v#e#c# #u#n# #u#t#i#l#i#t#a#i#r#e# #g#r#a#p#h#i#q#u#e# #(#q#u#i# #d#e#v#r#a#i#t# #n#o#r#m#a#l#e#m#e#n#t# #s#i#m#p#l#i#f#i#e#r# #l#e# #t#r#a#v#a#i#l#�#!#)### .# #d#e#s# #l#i#v#r#e#s# #o#u# #�# #l#a# #d#o#c#u#m#e#n#t#a#t#i#o#n# #e#n# #l#i#g#n#e# #c#o#n#s#t#r#u#c#t#e#u#r#.

Il n�existe pas de S. il existe un ensemble de ��dialectes�� qui respectent un minimum commun.G.Chaque ligne ou ��tuple�� est un �l�ment du graphe de la relation IdPilote#NomPilote#PrenomPilote##1#GAINSBOURG#Serge####2#FERRAT#Jean##3#NOUGARO#Cla ude##4#SCHUMMAN#Robert##5#STROGOFF#Michel##6#SORREL#Lucien##7#TAVERNIER#Bertrand##8 #FAYOLLE#Marc###9#LECU#R�gis#########Exemple�: la base de donn�es ��Compagnie a�rienne�� que l�on cr�era sous SQL Server dans la suite de ce cours�:Sch�ma g�n�ral de la base Structure et contenu des tablesAVION ( NumAvion.D Relationnels. alphanum�rique)BaseAeroport : identificateur de l�a�roport o� est bas� l�avion (cl� �trang�re vers la colonne IdAeroport de la table AEROPORT. NomVilleDesservie)IdAeroport : identificateur de l�a�roport (cl� primaire.# #�# #f#a#i#r#e# #i#n#d#i#v#i#d#u#e#llement (non int�gr� dans le temps de formation moyen)Presentation du langage sql Ressources Pour la syntaxe du langage SQL�: consulter le livre ��SQL2 Initiation/Programmation�� de Christian Mar�e et Guy Ledant Pour l�utilisation de l�environnement SQL Server�: utiliser ��Documentation en ligne de SQL Server�� et ��Aide de Transact SQL�� sous ��Analyseur de requ�te SQL�� Historique du langage S.D. num�rique)NomConstructeur : nom du constructeur (alphanum�rique) IdConstructeur#NomConstructeur##1#A�rospatiale##2#Boeing##3#Cessna##4#Douglas##Tous les avions sont bas�s dans un a�roport. NomAeroport. son 1er SGBDR. alphanum�rique)Capacit� : nombre de places (num�rique)IdConstructeur : identificateur du constructeur (cl� �trang�re vers la colonne IdConstructeur de la table CONSTRUCTEUR.B.#��######A#p#p#r#o#f#o#n#d#i#s#s#e#m#e#n#t#�#:# #t#r#a#v#a#i#l# #d#e# #d#o#c#u#m#e#n#t#a#t#i#o#n# #o#u# #e#x#e#r#c#i#c#e# #s#u#p#p#l#�#m#e#n#t#a#i#r#e#.Q. NomConstructeur)IdConstructeur : identificateur du constructeur (cl� primaire.S.### # #N#o#t#i#o#n# #d#e# #r#e#l#a#t#i#o#n###&� #S#Q#L# #2#�#:# #P#a#r#t#i#e# #I# # #A#p#p#r#o#c#h#e# #p#. TypeAvion. Pour ne pas introduire de redondance dans notre base. num�rique)TypeAvion : type d�avion�: A320. Les vols effectu�s par la compagnie a�rienne vont d�un a�roport de d�part � un a�roport d�arriv�e.Ce cours s�appuiera sur le langage ��Transact SQL�� de Microso#f#t#. B707� (Cl� �trang�re vers la colonne TypeAvion de la table TYPE.G.L. BaseAeroport)NumAvion : num�ro d�avion (cl� primaire.�! Malheureusement. cette solution �conomise de la place dans la base de donn�es(N entiers au lieu de N fois 50 caract�res)CONSTRUCTEUR ( IdConstructeur. num�rique) TypeAvion#Capacite#idConstructeur##A320#300#1##A340#350#1##ATR42#50#1##B707#250#2## B727#300#2##B747#400#2##DC10#200#4##Les noms des constructeurs doivent �tre connus avant de renseigner les types d�avion�:� il faut les stocker dans une table ind�pendante CONSTRUCTEUR�. Il a �t� d�velopp� par IBM en 1970 pour syst�me R.B. il faut donc cr�er une table TYPE pour stocker le nombre de places et le nom du constructeur. IdConstructeur)TypeAvion : type d�avion (cl� primaire.L.Q.Q.L. malgr� la norme SQL. 3 lettres)NomAeroport : nom de l�a�roport (alphanum�rique) NomVilleDesservie : ville desservie par l�a�roport (alphanum�rique) . pour pouvoir les pr�senter � l�utilisateur dans une liste d�roulante.# #1# #�# #2#5## #S#Q#L# #e#s#t# #b#a#s#�# #s#u#r# #l#a# #t#h#�#o#r#i#e# #d#e#s# #e#n#s#e#m#b#l#e#s#�#:# #i#l# #m#a#n#i#p#u#l#e# #d#e#s# # #�#�#t#a#b#l#e#s#�#�# #q#u#i# #r#e#p#r#�#s#e#n#t#e#n#t# #l#e# #g#r#a#p#h#e# #d## u#n#e# #r#e#l#a#t#i#o#n# #e#n#t#r#e# #p#l#u#s#i#e#u#r#s# #e#n#s#e#m#b#l#e#s# (colonnes). Capacite.R sans S. a �t� reconnu par l�ANSI puis impos� comme norme. La table AEROPORT doit regrouper toutes les caract�ristiques qui concernent directement l�a�roport�: identificateur. nom. ville desservieAEROPORT ( IdAeroport. C�est le premier langage pour les S. (Structured Query Language) est un langage structur� permettant d�interroger et de modifier les donn�es contenues dans une base de donn�es relationnelle.TYPE ( TypeAvion.# #e#n# #e#s#s#a#y#a#n#t# #d#e# #r#e#s#t#e#r# #l#e# #p#l#u#s# #s#t#a#n#d#a#r#d# #p#o#s#s#i#b#l#e#. 3 lettres) NumAvion#TypeAvion#BaseAeroport##100#A320#NIC##101#B707#CDG##102#A320#BLA##103#DC10 #BLA##104#B747#ORL##105#A320#GRE##106#ATR42#CDG##107#B727#LYS##108#B727#NAN##109#A3 40#BAS##Tous les avions de m�me type ont des caract�ristiques communes �: tous les A320 poss�dent le m�me nombre de places et sont contruits par ��AirBus��. Par ailleurs.Il est issu de SEQUEL : Structured English Query Language.

il faut conna�tre le num�ro de vol et la date�: la table AFFECTATION aura donc une ��cl� primaire compos�e��. Hd�part. avec des moyens (pilote et avion) �ventuellement diff�rents�: ne pas confondre la table VOL qui d�crit les caract�ristiques g�n�rales du vol. HArriv�e)NumVol : num�ro de vol (cl� primaire.VOL (NumVol. constitu�e par la concat�nation des colonnes NumVol et DateVol. AeroportDept.Les Op�rateurs Ensemblistes Ne s�appliquent qu�� des relations ��unicompatibles���: poss�dant le m�me nombre d�attributs sur les m�mes domaines�:#CARSPECIAUX 108 \f "Wingdings" \s 12 \h# l'union permet le regroupement de tuples :R1#Vols � destination de Paris charles de Gaulle###########NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT100#NIC#7:00#C DG#9:00##R2#Vols � destination de Paris Orly###########NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT105#LYS#6:00#ORL #7:00##IT106#BAS#10:00#ORL#13:00##IT108#BRI#19:00#ORL#20:00##IT109#NIC#18:00#ORL#19 :00##R3 = R1 U R2#Vols � destination de Paris###########NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT100#NIC#7:00#CD G#9:00##IT105#LYS#6:00#ORL#7:00##IT106#BAS#10:00#ORL#13:00##IT108#BRI#19:00#ORL#20: 00##IT109#NIC#18:00#ORL#19:00###CARSPECIAUX 108 \f "Wingdings" \s 12 \h# l'intersection permet la cr�ation d'une table � partir de tuples communs � 2 tables�:R4#Vols D�part Nice###########NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT100#NIC#7:00#CDG #9:00##IT107#NIC#7:00#BRI#8:00##IT109#NIC#18:00#ORL#19:00##IT111#NIC#17:00#NAN#19:0 0##R5#Vols Arriv�e Paris . NumAvion. DateVol. 3 lettres)Hd�part : heure de d�part (type heure)AeroportArr : identificateur de l�a�roport d�arriv�e (cl� �trang�re vers la colonne IdAeroport de la table AEROPORT. num�rique)NumVol#DateVol#NumAvion#IdPilote##IT100#6 avril 2001#100#1##IT100#7 avril 2001#101#2##IT101#6 avril 2001#100#2##IT101#7 avril 2001#103#4##IT102#6 avril 2001#101#1##IT102#7 avril 2001#102#3##IT103#6 avril 2001#105#3##IT103#7 avril 2001#104#2##IT104#6 avril 2001#105#3##IT104#7 avril 2001#107#8##IT105#6 avril 2001#107#7##IT105#7 avril 2001#106#7##IT106#6 avril 2001#109#8##IT106#7 avril 2001#104#5##IT107#6 avril 2001#106#9##IT107#7 avril 2001#103#8##IT108#6 avril 2001#106#9##IT108#7 avril 2001#106#5##IT109#6 avril 2001#107#7##IT109#7 avril 2001#105#1##IT110#6 avril 2001#102#2##IT110#7 avril 2001#104#3##IT111#6 avril 2001#101#4##IT111#7 avril 2001#100#8##Les �l�ments d�une colonne appartiennent tous au m�me ensemble appel� ��domaine��Une cl� qui fait r�f�rence � la cl� primaire d�une autre table est appel�e ��cl� �trang�re���: NumAvion dans Affectation� Rappels d�alg�bre relationnelToutes les requ�tes SQL correspondent � une combinaison des 7 op�rateurs d�alg�bre relationnel. "IT" + 3 chiffres�)AeroportDept : identificateur de l�a�roport de d�part (cl� �trang�re vers la colonne IdAeroport de la table AEROPORT. relie un a�roport de d�part � un a�roport d�arriv�e. AeroportArr. Le m�me vol est propos� par la compagnie a�rienne � des dates diff�rentes. 3 lettres)Harriv�e : heure d�arriv�e (type heure) NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT100#NIC#7:00#CDG#9:00##IT101#OR L#11:00#BLA#12:00##IT102#CDG#12:00#NIC#14:00##IT103#GRE#9:00#BLA#11:00##IT104#BLA#1 7:00#GRE#19:00##IT105#LYS#6:00#ORL#7:00##IT106#BAS#10:00#ORL#13:00##IT107#NIC#7:00# BRI#8:00##IT108#BRI#19:00#ORL#20:00##IT109#NIC#18:00#ORL#19:00##IT110#ORL#15:00#NIC #16:00##IT111#NIC#17:00#NAN#19:00##Pour conna�tre une ��desserte�� de fa�on unique. num�rique)IdPilote : identificateur du pilote en charge du vol (cl� �trang�re vers la colonne IdPilote de la table Pilote. avec la table AFFECTATION qui d�crit les moyens mis en �uvre pour un VOL propos� � une date donn�e.IdAeroport#NomAeroport#NomVilleDesservie##BAS#Poretta#Bastia##BLA#Blagnac#Toulouse# #BRI#Brive#Brive##CDG#Roissy#Paris##GRE#Saint Geoir#Grenoble##LYS#Saint exup�ry#Lyon##NAN#Saint Herblain#Nantes##NIC#Nice cote d'azur#Nice##ORL#Orly# Paris##Un vol. Cl� primaire�: NumVol + DateVolNumAvion : num�ro de l�avion qui assure le vol (cl� �trang�re vers la colonne NumAvion de la table Avion. IdPilote)NumVol : num�ro de vol (cl� �trang�re vers la colonne NumVol de la table VOL)DateVol : date du vol (type date). en partant � une heure donn�e et en arrivant � une heure donn�e. d�crit par un num�ro de vol unique.AFFECTATION (NumVol.

Si les 2 tables ont M et N tuples le r�sultat aura M * N tuples.Certains attributs et tous les enregistrements. La jointure consiste � juxtaposer les tuples dont la valeur d�un attribut est identique dans les deux tables.#Exemples :liste de tous les num�ros d�avions liste des noms et des pr�noms des pilotesOp�rateurs Relationnels Binaires #CARSPECIAUX 108 \f "Wingdings" \s 12 \h# le produit cart�sien r�alise la juxtaposition ou concat�nation de tous les tuples d'une table avec tous les tuples d'une autre table.#Exemples :Descriptif complet des vols pour Nice�: toutes les lignes de la table VOL telles que AeroportArr = 'NIC'. pour lesquelles Affectation. R7 = R4 -R3#Vols d�part Nice.Descriptif complet des avions de type A320�: toutes les lignes de la table AVION telles que TypeAvion = 'A320'#CARSPECIAUX 108 \f "Wingdings" \s 12 \h# la projection permet de ne conserver que les attributs (colonnes) int�ressants .IdPilote Table Affectation#####NumVol#DateVol#NumAvion#IdPilote##IT100#6 avril 2001#100#1##IT100#7 avril 2001#101#2##IT101#6 avril 2001#100#2##IT101#7 avril 2001#103#4##IT102#6 avril 2001#101#1##IT102#7 avril 2001#102#3##IT103#6 avril 2001#105#3##IT103#7 avril 2001#104#2##IT104#6 avril 2001#105#3##IT104#7 avril 2001#107#8##IT105#6 avril 2001#107#7##IT105#7 avril 2001#106#7##IT106#6 avril 2001#109#8##IT106#7 avril 2001#104#5##IT107#6 avril 2001#106#9##IT107#7 avril 2001#103#8##IT108#6 avril 2001#106#9##IT108#7 avril 2001#106#5##IT109#6 avril 2001#107#7##IT109#7 avril 2001#105#1##IT110#6 avril 2001#102#2##IT110#7 avril 2001#104#3##IT111#6 avril 2001#101#4##IT111#7 avril 2001#100#8##Table Pilote####IdPilote#NomPilote#PrenomPilote##1#GAINSBOURG#Serge##2#FERRAT#Jean##3#NOU GARO#Claude##4#SCHUMMAN#Robert##5#STROGOFF#Michel##6#SORREL#Lucien##7#TAVERNIER#Ber trand##8#FAYOLLE#Marc##9#LECU#R�gis##Planning�: jointure Affectation Pilotes############NumVol#DateVol#NumAvion#NomPilote#PrenomPilote##IT100#6 avril 2001#100#GAINSBOURG#Serge##IT100#7 avril 2001#101#FERRAT#Jean##IT101#6 avril 2001#100#FERRAT#Jean##IT101#7 avril 2001#103#SCHUMMAN#Robert##IT102#6 avril 2001#101#GAINSBOURG#Serge##IT102#7 avril 2001#102#NOUGARO#Claude##IT103#6 avril 2001#105#NOUGARO#Claude##IT103#7 avril 2001#104#FERRAT#Jean##IT104#6 avril 2001#105#NOUGARO#Claude##IT104#7 avril 2001#107#FAYOLLE#Marc##IT105#6 avril 2001#107#TAVERNIER#Bertrand##IT105#7 avril 2001#106#TAVERNIER#Bertrand##IT106#6 avril 2001#109#FAYOLLE#Marc##IT106#7 avril 2001#104#STROGOFF#Michel##IT107#6 avril 2001#106#LECU#R�gis##IT107#7 avril 2001#103#FAYOLLE#Marc##IT108#6 avril 2001#106#LECU#R�gis##IT108#7 avril 2001#106#STROGOFF#Michel##IT109#6 avril 2001#107#TAVERNIER#Bertrand##IT109#7 avril 2001#105#GAINSBOURG#Serge##IT110#6 avril 2001#102#FERRAT#Jean##IT110#7 avril 2001#104#NOUGARO#Claude##IT111#6 avril 2001#101#SCHUMMAN#Robert##IT111#7 avril 2001#100#FAYOLLE#Marc## . arriv�e Province###########NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT107#NIC#7:00 #BRI#8:00##IT111#NIC#17:00#NAN#19:00## Op�rateurs Relationnels Unaires#CARSPECIAUX 108 \f "Wingdings" \s 12 \h# la s�lection r�alise un d�coupage horizontal de la table en ne conservant que les tuples satisfai#sant une condition d�finie sur les valeurs d'un attribut.Exemple�: Faire un Planning des Vols indiquant le nom et le pr�nom des Pilotes�Il faut concat�ner les lignes de la table Affectation avec celles de la table Pilote. On constate que souvent. est possible seulement sur 2 tables poss�dant un domaine commun. A1##B1##A1#B1##A2##B2##A2#B1##A3####A3#B1######A1#B2######A2#B2######A3#B2## #CARSPECIAUX 108 \f "Wingdings" \s 12 \h# Le jointure (join).Orly###########NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT105#LYS#6:00#ORL #7:00##IT106#BAS#10:00#ORL#13:00##IT108#BRI#19:00#ORL#20:00##IT109#NIC#18:00#ORL#19 :00##R6 = R4 ^ R5#Vols d�part Nice. c'est un d�cou#page vertical de la table.Certains enregistrements et tous les attributs. la jointure porte sur des cl�s �trang�re et primaire li�es. arriv�e Orly###########NumVol#AeroportDept#Hd�part#AeroportArr#HArriv�e##IT109#NIC#18:00#OR L#19:00###CARSPECIAUX 108 \f "Wingdings" \s 12 \h# la diff�rence s�lectionne les tuples d'une table en �liminant les tuples pr�sents dans une autre table.IdPilote = Pilote.

. Boulevard Anspach. ou utilisez l'instruction USE:USE pubLI Pour v�rifier la connexion. il constitue le lien entre les divers composants du SGBDR comme le montre le sch�ma suivant :#INCORPORER MSDraw###D�couverte PRATIQUE du LANGAGE SQL Connexion � la base de donn�es PUBLI Outils disponibles�dans le menu Microsoft SQL Server 7. ORACLE..6380 Eric the Read Books 788. Av.#CARSPECIAUX 45 \f "Symbol" \s 10 \h# g�n�rateur de sch�ma conceptuel : pour la description de la structure des donn�es (entit�s. SYBASE.) offrent plus qu'un langage de requ�te puissant (en g�n�ral SQL)... INFORMIX. de la Victoire Paris FR 75016 7067 Moissons livresques 577. Seattle WA 98056 7066 Librairie sp�cialis�e 567. A tous les niveaux. �Enterprise Manager (administration des bases de donn�es en r�seau)Pour l�initiation � SQL. On y trouve toute une panoplie d'outils dits de 4�me g�n�ration :#CARSPECIAUX 45 \f "Symbol" \s 10 \h# g�n�rateur d'�crans : facilitant la saisie et l'affichage de donn�es par imbrication de requ�tes.0�: �Analyseur de requ�te SQL� (interpr�teur SQL interactif). est en anglais�: PUBS.). liens.---.----------. utilisez Analyseur de requ�te SQL� Choisissez ��Utilisez l�authentification SQL Server��: Nom de connexion�: Stage Mot de passe�: stageA la connexion. et qui permet la cr�ation de menus ainsi que des traitements sur la BD par requ�tes simples (en SQL) ou en imbriquant des appels � des programmes d�velopp�s en L3G (ce qui permet de combiner puissance des outils de 4�me g�n�ration et souplesse des L3G).Place de SQL dans les SGBDRLa plupart des SGBDR du march� (DB2-IBM. la manipulation et le contr�le des donn�es .#CARSPECIAUX 45 \f "Symbol" \s 10 \h# g�n�rateur d'application : qui fait appel aux �crans et �tats pr�c�dents.etc� Description de la base de donn�es PUBLI Il y a parfois des petites diff�rences entre la documentation et le contenu r�el des tables => pensez � v�rifier vos programmes en visualisant les contenus des tables par des requ�tes simplesA partir de SQL Server 7.s�lectionnez la dans la liste d�roulante. Bruxelles BE 1000 .----------------------------------------------------------. la base originale sur laquelle s�appuient tous les exemples de la documentation Microsoft. faites une interrogation simple�: Dans l�onglet Requ�te tapez�:select * from magasinsCliquez sur la fl�che verte pour lancer la requ�te. attributs. Catamaugus Ave.0. le langage SQL normalis� par l'ANSI est reconnu comme le langage de requ�te par excellence qui permet la cr�ation.#CARSPECIAUX 45 \f "Symbol" \s 10 \h# g�n�rateur d'�tats : pour la sortie d'�tat de la BD sur papier ou �cran. mais les exercices porteront toujours sur la ��version fran�aise�� de la base�: PUBLI .. Vous pouvez l�utiliser pour tester des syntaxes document�es dans l�aide. qui affiche la description des magasins�: id_mag nom_mag adresse_mag ville pays code_postal --------------------------------------------. vous �tes dans la base de donn�es par d�faut masterPour acc�der � la base de donn�es de d�monstration publi.

BMP Exemple de donn�es de type text pour Scootney Books.C. nom_�diteur varchar(40) oui ville varchar(20) oui r�gion char(2) oui pays varchar(30) oui 'USA' (1) La contrainte CHECK id_�diteur est d�finie comme (id_�diteur in ('1389'. (2) id_emploi smallint non 1 CE emplois(id_emploi)position_employ� . Algodata Infosystems est situ� � Bruxelles. '0877'. Il s'agit du nom du fichier d'o� provient le bitmap (donn�es graphiques). ordonn�. France. Five Lakes Publishing est situ� � Chicago. '1622'. ordonn�.Les livres sont vendus dans des magasins (table ventes et magasins)Diff�rents types de remise sont consentis sur les livres vendus (table remises)Les commentaires de d�tail seront donn�s table par table. Les �ditions Lucerne sont situ�es � Paris. (2) init_centrale char(1) oui Compos�. �diteur 1622 dans la base de donn�es pubs. New York.BMP Exemple de donn�es de type text pour GGG&G. Les �diteurs ont des logo (table pub_info).1389 ALGODATA. �diteur 0877 dans la base de donn�es pubs. qui sont d�finis en pourcentage du prix de vente. Suisse.Tous les �diteurs appartenant au groupe sont d�crits dans la table �diteurs.BMP Exemple de donn�es de type text pour Five Lakes Publishing. �diteur 9999 dans la base de donn�es pubs.BMP Exemple de donn�es de type text pour �ditions Lucerne. pn_employ� varchar(20) non Compos�. New Moon Books est situ� � Boston.BMP Exemple de donn�es de type text pour New Moon Books.1756 RAMONA. (2) Le texte pr�sent� ici NE constitue PAS la totalit� des donn�es. �diteur 9901 dans la base de donn�es pubs.BMP Exemple de donn�es de type text pour Ramona �diteur. en fonction de la quantit� de livres vendus (table droits_pr�vus). CE �diteurs(id_�diteur)logo image oui pr_info text oui id_�diteur logo (1) info_rp (2) 0736 NEWMOON. Binnet & Hardley est situ� � Washington. �diteur 1756 dans la base de donn�es pubs.1622 5LAKES. ordonn�. (2) nom_employ� varchar(30) non Compos�. Scootney Books est situ� � New York City.BMP Exemple de donn�es de type text pour Binnet & Hardley.# Publi d�crit la base de donn�es d�un groupe d��dition. Belgique. Lors de l'affichage de donn�es text. '0736'. ordonn�. par tranche. Allemagne. son/ses auteurs touchent des droits. Illinois.BMP Exemple de donn�es de type text pour Algodata Infosystems. D. GGG&G est situ� � Munich. emploient du personnel (table employ�). �diteur 9952 dans la base de donn�es pubs.Chaque employ� occupe un emploi (table emplois)Chaque livre est �crit par un ou plusieurs auteurs (table auteurs et table interm�diaire titreauteur)Pour chaque livre vendu. non ordonn�. Ramona �diteur est situ� � Lausanne. Table employ�Tous les employ�s ont un coefficient actuel (colonne position_employ�).0877 BINNET.9901 GGGG. �diteur 0736 dans la base de donn�es pubs.9999 LUCERNE.. compris entre le coefficient minimum et le coefficient maximum correspondant � leur type d�emploi (niv_min et niv_max dans la table emplois)Nom_colonne Type de donn�es NULL Par d�faut Check Cl�/indexid_employ� empid non oui (1) CP. Massachusetts. �diteur 1389 dans la base de donn�es pubs. et �ditent des livres (table titre). Ces informations pr�sentent les 120 premiers caract�res de la colonne de texte.Table �diteursNom_colonne Type de donn�es NULL Par d�faut Check Cl�/index id_�diteur char(4) non oui (1) CP.9952 SCOOTNEY. l'affichage est limit� � un nombre fini de caract�res. (1) Les informations pr�sent�es ici NE sont PAS les donn�es r�elles. ordonn�. '1756') OR id_�diteur LIKE '99[0-9][0-9]') id_�diteur nom_�diteur ville r�gion pays0736 New Moon Books Boston MA USA0877 Binnet & Hardley Washington DC USA1389 Algodata Infosystems Bruxelles NULL BE1622 Five Lakes Publishing Chicago IL USA1756 Ramona �diteur Lausanne NULL CH9901 GGG&G Munich NULL GER9952 Scootney Books New York NY USA9999 Editions Lucerne Paris NULL FR Table pub_infoNom_colonne Type de donn�es NULL Par d�faut Check Cl�/index pub_id char(4) non CP.

init_centrale. La premi�re colonne (id_employ�) est r�p�t�e dans la liste du dessous. ordonn� est d�fini sur nom_employ�. pn_employ�. Les tableaux suivants pr�sentent le contenu de la table employ�. id_employ� (#1) pn_employ� (#2) init_centrale (#3) nom_employ� (#4) id_emploi (#5)PMA42628M Paolo M Accorti 13PSA89086M Pedro S Alfonso 14VPA30890F Victoria P Ashworth 6PHB50241M Patrick H Brognon 9L-B31947F Lesley NULL Brown 7F-C16315M Francisco NULL Chang 4PTC11962M Philip T Cramer 2A-C71970F Aria NULL Cruz 10PJD25939M Philippe J De Bueger 5R-D39728F Renelde NULL Depr� 8AMD15433F Ann M Devon 3 ARD36773F Anabela R Domingues 8PHF38899M Peter H Franken 10PXH22250M Paul X Henriot 5 PDI47470M Palle D Ibsen 7KFJ64308F Karin F Josephs 14MGK44605M Matti G Karttunen 6 POK93028M Pirkko O Koskitalo 10JYL26161F Janine Y Labrune 5M-L67958F Maria NULL Larsson 7Y-L77953M Yoshi NULL Latimer 12LAL21447M Laurence A Lebihan 5ENL44273F Elizabeth N Lincoln 14PCM98509F Patricia C McKenna 11R-M53550M Roland NULL Mendel 11HAN90777M Helvetius A Nagy 7TPO55093M Timothy P O'Rourke 13SKO22412M Sven Ottlieb 5 MAP77183M Miguel A Paolino 11PSP68661F Paula S Parente 8M-P91209M Manuel NULL Pereira 8LCQ23061M Luc C Querton 5 LJR92907F Laurence J Radoux 9M-R38834F Martine Ranc� 9DWR65030M Diego W Roel 6AR89858F Annette NULL Roulet 6CAS28514M Carlos A Santana 5MMS49649F Mary M Saveley 8CGS88322F Carine G Schmitt 13MAS70474F Margaret A Smith 9HAS54740M Howard A Snyder 12MFS52347M Mart�n F Sommer 10DBT39435M Daniel B Tonini 11id_employ� (#1) position_employ� (#6) id_�diteur (#7) date_embauche (#8)PMA42628M 35 0877 08/12/92PSA89086M 89 1389 12/12/90 VPA30890F 140 0877 09/10/90PHB50241M 170 0736 08/09/88L-B31947F 120 0877 02/11/91F-C16315M 227 9952 11/02/90PTC11962M 215 9952 11/11/89AC71970F 87 1389 10/12/91PJD25939M 246 1756 03/01/89R-D39728F 35 0877 09/11/89AMD15433F 200 9952 07/12/91ARD36773F 100 0877 01/12/93PHF38899M 75 0877 05/12/92PXH22250M 159 0877 08/11/93PDI47470M 195 0736 05/09/93KFJ64308F 100 0736 10/12/92MGK44605M 220 0736 05/01/94POK93028M 80 9999 11/11/93JYL26161F 172 9901 05/12/91M-L67958F 135 1389 03/12/92Y-L77953M 32 1389 06/11/89LAL21447M 175 0736 06/03/90ENL44273F 35 0877 07/12/90PCM98509F 150 9999 08/01/89R-M53550M 150 0736 09/05/91HAN90777M 120 9999 03/11/93TPO55093M 100 0736 06/11/88SKO22412M 150 1389 04/05/91MAP77183M 112 1389 .tinyint non 10 id_�diteur char(4) non '9952' CE �diteurs(id_�diteur)date_embauche datetime non GETDATE( ) (1) La contrainte CHECK est d�finie comme (id_employ� LIKE '[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9] [FM]') OR #(id_employ� LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9][FM]') (2) L'index compos�. devant les colonnes 6 � 8. Elle n'est r�p�t�e qu'� des fins de lisibilit�.

12/07/92PSP68661F 125 1389 01/12/94M-P91209M 101 9999 01/09/89LCQ23061M 198 1622 10/09/93LJR92907F 170 9999 03/11/94M-R38834F 75 0877 02/05/92DWR65030M 192 1389 12/12/91A-R89858F 152 9999 02/11/90CAS28514M 211 9999 04/11/89MMS49649F 175 0736 06/12/93CGS88322F 64 1389 07/07/92MAS70474F 78 1389 09/11/88HAS54740M 100 0736 11/11/88MFS52347M 165 0736 04/11/90DBT39435M 75 0877 01/01/90Table emploisA chaque type d�emploi.78756-30-7391 Jalabert .43.#1#)# #C#P#.77486-291786 Vue Jessica 42.34409-56-7008 Bucchia Patrice 42.(3) L'index compos� non ordonn� est d�fini sur nom_auteur.pas de d�nomination officielle").04.77. Table auteurs Certains auteurs travaillent sous contrat avec leur �diteur ( colonne contrat de type bit) Nom_colonne Type de donn�es NULL Par d�faut Check Cl�/Indexid_auteur id non oui (1) CP. correspond un coefficient minimal (niv_min) et un coefficient maximal (niv_max) Nom_colonne Type de donn�es NULL Par #d#�#f#a#u#t# #C#h#e#c#k# #C#l#�#/#i#n#d#e#x##i#d#_#e#m#p#l#o#i# # #s#m#a#l#l#i#n#t# # #n#o#n# #I#D#E#N#T#I#T#Y#(#1#.37.36.# #d#e#s#c#_#e#m#p#l#o#i# #v#a#r#c#h#a#r#(#5#0#)# #n#o#n# #o#u#i# #(#1#)# # # # ##n#i#v#_#m#i#n# # #t#i#n#y#i#n#t# # #n#o#n# #o#u#i# #(#2#)# # ##n#i#v#_#m#a#x# # #t#i#n#y#i#n#t# # #n#o#n# #o#u#i# #(#3#)# # ####i#d#_#e#m#p#l#o#i# #d#e#s#c#_#e#m#p#l#o#i# # # #n#i#v#_#m#i#n# #n#i#v#_#m#a#x###1# #N#o#u#v#e#a#u# #c#o#l#l#a#b#o#r#a#t#e#u#r# #�� #P#o#s#t#e# #n#on sp�cifi� 10 102 Directeur g�n�ral 200 2503 Directeur des op�rations commerciales 175 2254 Responsable financier 175 2505 Editeur 150 2506 Editeur en chef 140 2257 Directeur du marketing 120 2008 Directeur des relations publiques 100 1759 Directeur des achats 75 17510 Directeur de la productionr 75 16511 Directeur des op�rations 75 15012 R�dacteur 25 10013 Repr�sentant commercial 25 10014 Graphiste 25 100 (1) La contrainte DEFAULT est d�finie comme ("Nouveau poste .89.09.27427-17-2319 Logerot Philippe 42.24.84.48.30.71527-72-3246 Posey William 69.91472-27-2349 Schildwachter Xavier 47. (2) La contrainte CHECK code_postal est d�finie comme (code_postal LIKE '[0-9][0-9][0-9] [0-9][0-9]').68722-51-5454 Hall Catherine 54.24.44.96. Les tables ci-dessous pr�sentent le contenu de la table auteurs.96. (3) La contrainte CHECK niv_max est d�finie comme (niv_max <= 250). Elle n'est r�p�t�e qu'� des fins de lisibilit�.73. La premi�re colonne (id_auteur) est r�p�t�e dans la liste du dessous.32.79.66.36.89.29672-713249 De Verne Vincent 45.35341-221782 Lorense Danielle 02. devant les colonnes 5 � 9.00648-92-1872 Sorense Christophe 56.53267-41-2394 M�dina Marguerite 48.11.33.23712-45-1867 Vilc Benjamin 93.44274-80-9391 Merrell Patricia 42.44. (2) La contrainte CHECK niv_min est d�finie comme (niv_min >= 10). non ordonn� (3) pn_auteur varchar(20) non Compos�.12.49 213-46-8915 Mathieu Charles 93.08.11. non ordonn� (3) t�l�phone char(12) non 'INCONNU' adresse varchar(40) oui ville varchar(20) oui pays char(2) oui code_postal char(5) oui oui (2) contrat bit non (1) La contrainte CHECK id_auteur est d�finie comme (id_auteur LIKE '[0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]'). pn_auteur.24.99724-80-9391 Lacouture Gilles 45.78724-08-9931 D'Autricourt Alain 46.48.nom_auteur varchar(40) non Compos�.# #o#r#d#o#n#n#�#.01.15.04.35238-95-7766 Chartier Laurent 38.27. .71.id_auteur (#1) nom_auteur (#2) pn_auteur (#3) t�l�phone (#4)172-32-1176 Bourne St�phanie 45.

47.99893-72-1158 Facq Jean-R�my 56. ordonn� est d�fini sur id_auteur. on tient � jour le nombre d�ouvrages vendus. rue Astarte Luxembourg LU 02016 1724-08-9931 75. square Gauguin Nice FR 06014 1213-46-8915 18.. rue de l'Amiral Clou� Luxembourg LU 01016 1472-27-2349 11. rue de Valmy Gen�ve CH 91712 1998-72-3567 48.54. rue de la Condamine Paris FR 75020 1807-91-6654 4. rue du Mont Thabor Lille FR 59000 1893-72-1158 59. boulevard de Clichy Bordeaux FR 33000 1427-17-2319 32. ordonn�. passage Sainte Anne Toulouse FR 31002 1274-80-9391 2.05.24. ordonn�. rue Lisleferme Paris FR 75018 0899-46-2035 48.54. rue Pierre-Louis Coll Zurich CH 91450 1672-71-3249 113.11 846-92-7186 Letournec Beno�t 48.91807-91-6654 Bec Arthur 22. rue de la Pompe Marseille FR 13016 1756-30-7391 94. Cette cl� �trang�re a �galement un index non ordonn� sur id_auteur. (3) Cette cl� �trang�re a �galement un index non ordonn� sur id_titre. impasse Lamoix Bordeaux FR 33000 1267-41-2394 48.21 998-72-3567 Chevalier Bernard 20. avenue Arbabi Paris FR 75017 123895-7766 4.31. tous magasins confondus (colonne cumulannuel_ventes). id_titre. rue des Couronnes Paris FR 75017 0724-80-9391 20. ordonn�.20id_auteur (#1) adresse (#5) ville (#6) pays(#7) code_postal (#8) contrat (#9)172-32-1176 4.54. chemin de la Tour de Campel Bruges BE 05006 1846-92-7186 32.Marc 45.44899-46-2035 Chevalier Anne 20. avenue des tapis Zurich CH 91450 0648-92-1872 55 . faubourg Saint Jean Monte Carlo MC 98000 1722-51-5454 12.87. pendant l��criture de leur livre ( colonne avance). (1) CE titres(id_titre) (3) cmd_auteur tinyint oui droits_pourcent int oui (1) L'index compos�. et la tranche de droit d�auteur atteinte par ce livre (colonne droits)Nom_colonne Type de donn�es NULL Par d�faut Check Cl�/indexid_titre tid non CP. place du G�n�ral Catroux Paris FR 75015 1341-22-1782 14.24. Pour chaque titre.88. id_auteur id_titre cmd_auteur droits_pourcent172-32-1176 PS3333 1 100213-46-8915 BU1032 2 40213-46-8915 BU2075 1 100238-95-7766 PC1035 1 100267-41-2394 BU1111 2 40274-80-9391 BU7832 1 100409-56-7008 BU1032 1 60427-17-2319 PC8888 1 50486-29-1786 PC9999 1 100486-29-1786 PS7777 1 100712-45-1867 MC2222 1 100722-51-5454 MC3021 1 75724-80-9391 BU1111 1 60724-80-9391 PS1372 2 25756-30-7391 PS1372 1 75846-92-7186 PC8888 2 50899-46-2035 MC3021 2 25899-46-2035 PS2091 2 50998-72-3567 PS2091 1 50998-72-3567 PS2106 1 100Table titresCertains auteurs per�oivent une avance sur recette.titre varchar(80) non Non ordonn�. rue du Cherche-Midi Vers-La-Petite FR 91712 1712-45-1867 18. (1) CE auteurs(id_auteur) (2) id_titre tid non Compos� CP.48.22. cl� primaire. impasse Lacarte Li�ge BE 01548 0409-56-7008 201. rue Vieille du Temple Chevrette FR 91450 1527-72-3246 57. rue de Valmy Gen�ve CH 91712 1Table titreauteurAttention�: certains auteurs peuvent �tre d�crits dans la table Auteurs sans �tre pr�sents dans la table titreauteur. s�ils n�ont encore rien �crit (cas des auteurs sous contrat qui �crivent leur premier livre)Nom_colonne Type de donn�es NULL Par d�faut Check Cl�/indexid_auteur id non Compos� CP. rue Buffon Bruxelles BE 02530 1486-29-1786 62-64..type char(12) non �UNDECIDED' id_�diteur char(4) oui CE �diteurs(id_�diteur)prix money oui avance money oui droits int oui cumulannuel_ventes int oui notes .

Explications claires et d�taill�es. Elle n'est r�p�t�e qu'� des fins de lisibilit�.00MC3026 La psychologie des ordinateurs de cuisine SANS TITRE 0877 NULLPC1035 Est-ce vraiment convivial? informatique 1389 156. 06/12/85BU1111 Conseils utiles vous permettant de tirer le meilleur parti possible de vos ressources informatiques.00PC8888 Les secrets de la Silicon Valley informatique 1389 136. 06/12/85BU7832 Analyse comment�e des possibilit�s offertes par les ordinateurs : un guide impartial pour l'utilisateur critique.00 MC2222 Les festins de Parly 2 cui_moderne 0877 136. 06/12/85PC8888 Deux femmes courageuses d�voilent tous les scandales qui jonchent l'irr�sistible ascension des pionniers de l'informatique. S'adressant aux utilisateurs d�butants.000 10 3336 id_titre (#1) notes (#9) datepub (#10) BU1032 Vue d'ensemble illustr�e des syst�mes de gestion de base de donn�es disponibles sur le march�. test�es et go�t�es par des gens qui n'ont jamais le temps de manger.000 10 4072PS7777 27.l'ordinateur : bilans clandestins gestion 1389 82.00BU7832 Toute la v�rit� sur les ordinateurs gestion 1389 136. 06/12/85PC9999 La bible des d�butants dans un environnement r�seau.000 16 8780PC8888 54.000 10 375PS2091 15.000 24 22246MC3026 NULL NULL NULL PC1035 48.00 BU1111 La cuisine .00BU2075 Le stress en informatique n'est pas une fatalit�! gestion 0736 24.000 10 4095PC9999 NULL NULL NULLPS1372 48.00PS2091 La col�re : notre ennemie? psychologie 0736 76.000 12 2045PS2106 41.00 12 2032MC3021 102. L'accent est mis sur les applications de gestion courantes.00 id_titre (#1) avance (#6) droits (#7) cumulannuel_ventes (#8)BU1032 35.000 10 4095BU1111 34.00 PS2106 Vivre sans crainte psychologie 0736 49. 06/09/85BU2075 Expos� des techniques m�dicales et psychologiques les plus r�centes permettant de survivre dans le bureau �lectronique. cet ouvrage �tablit un palmar�s des logiciels en fonction de leur convivialit�.id_titre (#1) titre (#2) t type (#3) id_�diteur (#4) prix (#5)BU1032 Guide des bases de donn�es du gestionnaire press� gestion 1389 140. 06/12/85MC2222 Recueil de recettes rapides. d'abord devant les colonnes 5 � 8. 06/09/85MC3021 Adaptation de recettes traditionnelles des provinces fran�aises .00PS3333 Privation durable d'informations : �tude de quatre cas repr�sentatifs psychologie 0736 136. 17/05/96PS1372 Lecture indispensable pour le . ensuite devant les colonnes 9 et 10. faciles et �l�gantes.00PS7777 Equilibre �motionnel : un nouvel algorithme psychologie 0736 54.000 10 3876BU2075 69.00MC3021 Les micro-ondes par gourmandise cui_moderne 0877 21.000 10 4095MC2222 0. Mat�riel et logiciel : personne n'est �pargn�. La premi�re colonne (id_titre) est r�p�t�e dans les listes du dessous.00PC9999 Guide des bonnes mani�res sur un r�seau informatique 1389 NULLPS1372 Phobie et passion informatique : �ventail de comportements psychologie 0877 147.000 24 18722BU7832 34. 06/09/85MC3026 NULL 17/05/96PC1035 Etude comparative des progiciels les plus r�pandus.000 10 111PS3333 14. Aide pr�cieuse pour le cuisinier occasionnel.varchar(200) oui datepub datetime non GETDATE( ) Les tableaux ci-apr�s pr�sentent le contenu de la table titres.la cuisine au micro-ondes.

Exemple�: Si l�on vend 3500 livres "BU1035". le titre du livre command� (id_titre). son auteur percevra 10% sur les 2000 premiers livres. ordonn� est d�fini sur id_mag. CE magasins(id_mag)num_cmd varchar(20) non Compos� CP. ordonn�. De nombreux sch�mas du m�tabolisme illustrent l'expos� et en facilitent la compr�hension. 06/12/85Table droits_pr�vusLes auteurs per�oivent des droits croissants sur leurs livres. Parmi les rem�des propos�s : utilisation de l'ordinateur et alimentation judicieusement choisie. 06/12/85PS7777 Comment se prot�ger contre le stress exag�r� du monde moderne. 10/05/85PS3333 Que se passe-t-il quand les donn�es viennent � manquer? Analyse scientique des effets du manque d'information sur les grands consommateurs. la m�ditation et la di�t�tique (nombreux exemples de menus). 10/11/85PS2091 Etude approfondie des cons�quences somatiques des �motions fortes. pour chaque tranche de livres vendus (nombre de livres entre minimum et maximum). La table Ventes poss�de donc une cl� primaire compos�e. num_cmd. id_titre. Nom_colonne Type de donn�es NULL Par d�faut Check Cl�/indexid_titre idt non CE titres(id_titre) minimum int oui maximum int oui droits int oui id_titre minimum maximum droitsBU1032 0 5000 10BU1032 5001 50000 12PC1035 0 2000 10PC1035 2001 3000 12PC1035 3001 4000 14PC1035 4001 10000 16PC1035 10001 50000 18BU2075 0 1000 10BU2075 1001 3000 12BU2075 3001 5000 14BU2075 5001 7000 16BU2075 7001 10000 18 BU2075 10001 12000 20BU2075 12001 14000 22BU2075 14001 50000 24PS2091 0 1000 10PS2091 1001 5000 12PS2091 5001 10000 14PS2091 10001 50000 16PS2106 0 2000 10PS2106 2001 5000 12PS2106 5001 10000 14PS2106 10001 50000 16MC3021 0 1000 10MC3021 1001 2000 12 MC3021 2001 4000 14MC3021 4001 6000 16MC3021 6001 8000 18MC3021 8001 10000 20MC3021 10001 12000 22MC3021 12001 50000 24PC8888 0 5000 10PC8888 5001 10000 12PC8888 10001 15000 14PC8888 15001 50000 16PS7777 0 5000 10PS7777 5001 50000 12PS3333 0 5000 10 PS3333 5001 10000 12PS3333 10001 15000 14PS3333 15001 50000 16BU1111 0 4000 10BU1111 4001 8000 12BU1111 8001 10000 14BU1111 12001 16000 16BU1111 16001 20000 18BU1111 20001 24000 20BU1111 24001 28000 22BU1111 28001 50000 24MC2222 0 2000 10MC2222 2001 4000 12 MC2222 4001 8000 14MC2222 8001 12000 16MC2222 12001 20000 18MC2222 20001 50000 20BU7832 0 5000 10BU7832 5001 10000 12BU7832 10001 15000 14BU7832 15001 20000 16BU7832 20001 25000 18BU7832 25001 30000 20BU7832 30001 35000 22BU7832 35001 50000 24PS1372 0 10000 10 PS1372 10001 20000 12PS1372 20001 30000 14PS1372 30001 40000 16PS1372 40001 50000 18Table ventesLes magasins envoient des commandes aux �diteurs. Chaque magasin poss�de ses propres conventions de num�rotation des commandes. cl� primaire. ordonn�. Chaque commande porte sur un ou plusieurs livres. id_mag num_cmd date_cmd qt modepaiements id_titre63 6380 722a 09/11/94 3 Net 60 PS20917066 A2976 . (1) CE titres(id_titre) (1) L'index compos�. (1) . 06/11/85PS2106 Comment amortir le choc des interactions quotidiennes par la gymnastique. constitu�e de ces trois colonnes. (1) date_cmd datetime non qt smallint non modepaiements varchar(12) non id_titre idt non Compos� CP. le num�ro de commande (num_cmd).. Bandes vid�o sur commande pour les exercices physiques. en fonction de la quantit� vendue�: les droits sont exprim�s en pourcentage (colonne droits). 14% du 3001 au 3500.Nom_colonne Type de donn�es NULL Cl�/indexid_mag char(4) non Compos� CP. il faut donc conna�tre�: le magasin qui l�a �mise (colonne id_mag). Pour d�crire une ligne de commande de fa�on unique. ordonn�. 12% du livre 2001 au 3000.sp�cialiste : cet ouvrage �tudie les diff�rences entre ceux qui d�testent et craignent les ordinateurs et ceux qui les trouvent �patants.

nom_auteurFROM auteursWHERE ville = 'Paris' pn_auteur nom_auteur --------# # # # #-#-#-#-#-#-#-#-#-#-#-#-#-#-##C#h#a#r#l#e#s# # # # # # # # # # # # # # # # #M#a#t#h#i#e#u##P#a#t#r#i#c#i#a# # # # # # # # # # # # # # # #M#e#r#r#e#l#l##A#l#a#i#n# # # # # # # # # # # # # # # # # # # #D#'#A#u#t#r#i#c#o#u#r#t##M#a#r#c# # # # # # # # # # # # # # # # # # # #J#a#l#a#b#e#r#t##J#e#a#n#-#R#�#m#y# # # # # # # # # #F#a#c#q###:� � .Nom_colonne Type de donn�es NULL Par d�faut Check Cl�/indextyperemise varchar(40) non id_mag char(4) oui CE magasins(id_mag)qt�min #s#m#a#l#l#i#n#t# # #o#u#i# # # ##q#t#�#m#a#x# # #s#m#a#l#l#i#n#t# # #o#u#i# # # ##r#e#m#i#s#e# # #d#e#c#i#m#a#l# # #n#o#n# # # ####t#y#p#e#r#e#m#i#s#e# #i#d#_#m#a#g# #q#t#�#m#i#n# #q#t#�#m#a#x# #r#e#m#i#s#e# #R#e#m#i#s#e# #i#n#i#t#i#a#l#e# #N#U#L#L# #N#U#L#L# #N#U#L#L# #1#0#. Syntaxe simplifi�e de l'instruction SELECT :SELECT liste_de_s�lection #FROM liste_de_tables #WHERE crit�res_de_s�lectionPar exemple. Portland OR 89076Table remisesLes �diteurs consentent trois types de remises�: des ��remises client�� � certains magasins privil�gi�s (r�f�renc�s par la colonne id_mag)�. l'instruction SELECT suivante extrait les nom et pr�nom des �crivains de la table auteurs vivant � Paris.# #e#n# #L#i#g#n#e#�#:# #c#h#a#p#i#t#r#e# #�#�#A#c#c#�#d#e#r# #a#u#x# #d#o#n#n#�#e#s# #e#t# #l#e#s# #m#o#d#i#f#i#e#r#�#�#�#### #R#e#q#u#�#t#e# #S#e#l#e#c#t# #s#i#m#p#l#e# #s#u#r# #u#n#e# #s#e#u#l#e# #t#a#b#l#e##&� #D#o#c#. Seattle WA 980567066 Librairie sp�cialis�e 567.05/12/93 50 Net 30 PC88887066 QA7442.#5# #R#e#m#i#s#e# #V#o#l#u#m#e# #N#U#L#L# #1#0#0# #1#0#0#0# #6#.#0##### #C#o#n#s#u#l#t#a#t#i#o#n# #d## u#n#e# #b#a#s#e# #d#e# #d#o#n#n#�#e#s###&� #D#o#c#. Bruxelles BE 10007131 Doc-U-Mat: Quality Laundry and Books 24-A Avrogado Way Remulade WA 980147896 Fricative Bookshop 89 Madison St. une remise initiale (type FNAC) � tous les magasins du groupe.# #4#3#-#6#0####L#'#i#n#s#t#r#u#c#t#i#o#n# #S#E#L#E#C#T# #s#p#�#c#i#f#i#e# #l#e#s# #c#o#l#o#n#n#e#s# #q#u#e# #v#o#u#s# #v#o#u#l#e#z# #r#�#c#u#p#�#r#e#r#.#7# #R#e#m#i#s#e# #c#l#i#e#n#t# #8#0#4#2# #N#U#L#L# #N#U#L#L# #5#.nom_mag varchar(40) oui adresse_mag varchar(40) oui ville varchar(20) oui pays char(2) oui code_postal char(5) oui id_mag nom_mag adresse_mag ville pays code_postal6380 Eric the Read Books 788 Catamaugus Ave. de la Victoire Paris FR 750167067 Moissons livresques 577. des ��remises en volume��.# #L#a# #c#l#a#u#s#e# FROM sp�cifie les tables dans lesquelles se trouvent les colonnes. La clause WHERE sp�cifie les lignes que vous voulez visualiser dans les tables. Av.# #e#n# #L#i#g#n#e#�#:# #�#�#P#r#i#n#c#i#p#e# #d#e# #b#a#s#e#s# #d#e#s# #r#e#q#u#�#t#e#s#�##S#Q#L# #2#�#:# #p#. Boulevard Anspach. Fremont CA 900198042 Bookbeat 679 Carson St. en fonction de la quantit� command�e (entre qt�min et qt�max)�.3 09/12/94 75 Comptant PS20917067 D4482 09/12/94 10 Net 60 PS20917131 N914008 09/12/94 20 Net 30 PS20917131 N914014 09/12/94 25 Net 30 MC30217131 P3087a 05/12/93 20 Net 60 PS13727131 P3087a 05/12/93 25 Net 60 PS2106 7131 P3087a 05/12/93 15 Net 60 PS33337131 P3087a 05/12/93 25 Net 60 PS77777896 QQ2299 10/12/93 15 Net 60 BU78327896 TQ456 12/12/93 10 Net 60 MC22227896 X999 02/11/93 35 Comptant BU20758042 423LL922 09/12/94 15 Comptant MC30218042 423LL930 09/12/94 10 Comptant BU10328042 P723 03/11/93 25 Net 30 BU11118042 QA879. ordonn�.1 05/11/93 30 Net 30 PC1035 Table magasinsNom_colonne Type de donn�es NULL Par d�faut Check Cl�/index id_mag char(4) non CP.SELECT pn_auteur.

# #l#a# #v#i#l#l#e# #e#t# #l#a# #r#�#g#i#o#n# #d#e# #t#o#u#s# #l#e#s# #�#d#i#t#e#u#r#s## # ##L#a syntaxe compl�te de l'instruction SELECT�: SELECT [ALL | DISTINCT] liste_de_s�lection # [INTO [nouveau_nom_de_table]] #[FROM {nom_de_table | nom_de_vue}[(conseils-optimiseur)] # [[.# #d#o#n#t# #l#e# #n#o#m# #c#o#m#m#e#n#c#e# #p#a#r# ## L## .# #N#O#T# #I#N#)##W#H#E#R#E# #s#t#a#t#e# #i#n# #(#'#B#E#'#. Suisse ou Belge.# #e#t# # #l#a# #d#a#t#e# #d## e#m#b#a#u#c#h#e# #d#e#s# #e#m#p#l#o#y#�#s# #e#m#b#a#u#c#h#�#s# #e#n# #9#0#.auteurs. de la table. le pays et l�adresse des auteurs Fran�ais.propri�taire. consultez l'instruction SELECT dans le Manuel de r�f�rence Transact-SQL (choisissez Select Examples (T-SQL) ) S�lection de lignes�: clause Where Les crit�res de s�lecti#o#n#. en les s�parant par des points�: base_de_donn�es.#E#x#e#r#c#i#c#e# #1#�#:# # #A#f#f#i#c#h#e#r# #l#e# #n#o#m#.. du propri�taire.# #O#R#)##w#h#e#r#e# #a#v#a#n#c#e# #<# #3#0#0#0#0# #o#r# #(#c#u#m#u#l#a#n#n#u#e#l#_#v#e#n#t#e#s# #># #2#0#0#0# #a#n#d# #c#u#m#u#l#a#n#n#u#e#l#_#v#e#n#t#e#s# #<# #2#5#0#0#)###:� #E#x#e#r#c#i#c#e#�#2#�#:# #L#I#K#E#. puis par leur nom de famille (sous-crit�re)Exercice 4�: IN.# #'#L#U#'#)## # ##�� �D#e#s# #c#o#n#c#o#r#d#a#n#c#e#s# #a#v#e#c# #d#e#s# #m#o#d#�#l#e#s# #(#L#I#K#E# #e#t# #N#O#T# #L#I#K#E#)##W#H#E#R#E# #t#�#l#�#p#h#o#n#e# #n#o#t# #l#i#k#e# #'#4#5#%#'### %# # #T#o#u#t#e# #c#h#a#�#n#e# #d#e# #z#�#r#o# #c#a#r#a#c#t#�#r#e# #o#u# #p#l#u#s##_# # # #T#o#u#t# #c#a#r#a#c#t#�#r#e# #u#n#i#q#u#e##[#a#-#f#]# # #T#o#u#t# #c#a#r#a#c#t#�#r#e# #d#e# #l#'#i#n#t#e#r#v#a#l#l#e# #(#[#a##f#]#)# #o#u# #d#e# #l#'#e#n#s#e#m#b#l#e# #s#p#�#c#i#f#i#�# #(#[#a#b#c#d#e#f#]#)# #[#^#a#-#f#]# #T#o#u#t# #c#a#r#a#c#t#�#r#e# #e#n# #d#e#h#o#r#s# #d#e# #l#'#i#n#t#e#r#v#a#l#l#e# #(#[#^#a#-#f#]#)# #o#u# #d#e# #l#'#e#n#s#e#m#b#l#e# #s#p#�#c#i#f#i#�# #(#[#^#a#b#c#d#e#f#]#)###�� �D#e#s# #v#a#l#e#u#r#s# #i#n#c#o#n#n#u#e#s# #(#I#S# #N#U#L#L# #e#t# #I#S# #N#O#T# #N#U#L#L#)##w#h#e#r#e# #a#v#a#n#c#e# #i#s# #n#u#l#l## # ##�� �D#e#s# #c#o#m#b#i#n#a#i#s#o#n#s# #d#e# #c#e#s# #c#r#i#t#�#r#e#s# #(#A#N#D#. la clause GROUP BY pr�c�de la clause ORDER BY).# #d#e# #l#a# #c#l#a#u#s#e# #W#H#E#R#E# #p#e#u#v#e#n#t# #i#n#c#l#u#r#e#:##�� #D#e#s# #o#p#�#r#a#t#e#u#r#s# #d#e# #c#o#m#p#a#r#a#i#s#o#n# #(#t#e#l#s# #q#u#e# #=#.# #e#t# #l#a# #p#o#s#i#t#i#o#n# #e#s#t# #c#o#mprise entre 10 et 100Exercice 3�: ORDER BY Afficher le nom et la date d�embauche des employ�s. class�s par leur identificateur d��diteur. WHERE et ORDER pour affiner les recherches partout o� il est possible d'utiliser une valeur d'attribut�:Livres qui re�oivent une avance sur vente sup�rieure � 500 fois leur prix�:SELECT titre. class�s par pays.# #'#C#H#'#.# #A#N#D# # ## #A#f#f#i#c#h#e#r# #l#e# #n#o#m#.. {nom_de_table16 | nom_de_vue16}[(( conseilsoptimiseur)]]] #[clause WHERE]#[clause GROUP BY]#[clause HAVING]#[clause ORDER BY]#[clause COMPUTE]#[FOR BROWSE ]Les clauses d'une instruction SELECT doivent �tre utilis�es dans l'ordre d�crit ci-dessus. Expressions et fonctionsLes 4 op�rateurs arithm�tiques de base peuvent �tre utilis�s dans les clauses SELECT. ORDER BY Afficher le nom. si l'instruction comprend une clause GROUP BY et une clause ORDER BY.# #o#u# #c#o#n#d#i#t#i#o#n#s#.# #<# #>#. si l'utilisateur suzanne poss�de la table auteurs dans la base de donn�es pubs.# #<#. Les deux requ�tes suivantes sont �quivalentes:SELECT pn_auteur. nom_auteurFROM auteursORDER BY nom_auteurORDER BY 2Pour plus d'informations sur SELECT.suzanne.nom_de_table. {nom_de_table2 | nom_de_vue2} [(conseils-optimiseur)] # [.villeVous pouvez demander un tri en fonction du nom de colonne ou de la position de colonne dans la liste de s�lection. avanceFROM titresWHERE avance > = 500 * prixSuivant les syst�mes la gamme des op�rateurs et des fonctions utilisables peut �tre tr�s �volu�e : elle comporte toujours des fonctions de traitement de cha�nes .nom_de_colonnePar exemple.Le nom des objets de la base de donn�es doit �tre d�termin� si le choix d'un objet est ambigu�: vous pouvez alors pr�ciser le nom de la base de donn�es.. l'identificateur unique de la colonne ville dans cette table est: pubs. prix.# #B#E#T#W#E#E#N#. (Par exemple.# #e#t# #>#)##W#H#E#R#E# #a#v#a#n#c#e# #*# #2# #># #c#u#m#u#l#a#n#n#u#e#l#_#v#e#n#t#e#s# #*# #p#r#i#x## # ##�� �D#e#s# #i#n#t#e#r#v#a#l#l#e#s# #(#B#E#T#W#E#E#N# #e#t# #N#O#T# #B#E#T#W#E#E#N#)# #W#H#E#R#E# #c#u#m#u#l#a#n#n#u#e#l#_#v#e#n#t#e#s# #b#e#t#w#e#e#n# #4#0#9#5# #a#n#d# #1#2#0#0#0## # ##�� �D#e#s# #l#i#s#t#e#s# #(#I#N#.# #l#e# #p#r#�#n#o#m#.

de caract�res. D'autre part. compte les occurrences pour un attribut. Cet exemple d�termine la diff�rence en jours entre la date courante et la date de publication�:SELECT newdate = DATEDIFF(day.La clause HAVING est �quivalente � WHERE mais elle se rapporte aux groupes. donne la valeur MAX et la valeur MIN de l'attribut.# #H#A#V#I#N#G##&� �D#o#c#. les valeurs ind�termin�es (= NULL) ne sont pas prises en compte. somme les valeurs de l'attribut (de type num�rique).Regrouper les titres en fonction du type. AVG(prix)FROM titresGROUP BY id_�diteurHAVING SUM(avance) > 90000 AND AVG(prix) < 150 AND id_�diteur > '0800'M�me exemple.00 19566 gestion 43. AVG(avance).00 9939 SANS TITRE (null) (null) (6 ligne(s) affect�e(s))Les fonctions de groupe (ou �d�agr�gation��) effectuent un calcul sur l'ensemble des valeurs d'un attribut d'un groupe de tuples.#CARSPECIAUX 45 \f "Symbol" \s 10 \h# �COUNT.# #g#e#t#d#a#t#e#(#)#)## #F#R#O#M# #t#i#t#r#e#s## ## #R#e#q#u#�#t#e# #s#u#r# #l#e#s# #g#r#o#u#p#e#s#�#:# # # #G#R#O#U#P# #B#Y#. et qui vendent des livres pour un prix moyen inf�rieur � 150 FF:SELECT id_�diteur. en incluant seulement les �diteurs dont le num�ro d'identification est sup�rieur � 0800 et qui ont consenti des avances pour un total sup�rieur � 90 000 FF. en �liminant les groupes qui contienne un seul livre SELECT typeFROM titresGROUP BY typeHAVING COUNT(*) > 1type -----------.# #e#n# #l#i#g#n#e#�#�#�#C#o#n#c#e#p#t#s# #d#e# #r#e#q#u#�#t#e#s# #a#v#a#n#c#�#e#s#�#�#�#:# #�#�#R#e#g#r#o#u#p#e#m#e#n#t# #d#e# #l#i#g#n#e#s# #�# #l## a#i#d#e# #d#e# ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # �Group by��La clause GROUP BY est employ�e dans les instructions SELECT pour diviser une table en groupes. AVG(prix)FROM titresWHERE prix >= 60GROUP BY id_�diteur HAVING SUM(avance) > 90000 AND AVG(prix) < 150 AND id_�diteur > '0800'ORDER BY id_�diteur ################################################################################### ##################################################:� � #E#x#e#r#c#i#c#e#�#5#�#:# #G#R#O#U#P# #B#Y#.# #f#o#n#c#t#i#o#n#s# #d#e# #g#r#o#u#p#e#. L'instruction suivante calcule l'avance moyenne et la somme des ventes annuelles cumul�es pour chaque type de livre:SELECT type. Si cet argument est pr�c�d� du mot cl� DISTINCT les r�p�titions sont �limin�es.Ces fonctions imposent la sp�cification de l'attribut en tant qu'argument. Un groupe est un sous ensemble des tuples d'une table tel que la valeur d'un attribut y reste constante .# #c#o#l#o#n#n#e# #p#o#s#i#t#i#o#n#_#e#m#p#l#o#y#�#)# #a#f#f#i#c#h#e#r# #l#e# #n#o#m#b#r#e# #d## e#m#p#l#o#y#�#s# #d#e# #c#e# #n#i#v#e#a#u#.# # #l#a# #d#a#t#e# #d## e#m#b#a#u#c#h#e# #d#u# #s#a#l#a#r#i#�# #l#e# #p#l#u#s# #a#n#c#i#e#n# #e#t# #d#u# . en �liminant les titres dont le prix est inf�rieur � 60 FF.000. un groupe est sp�cifi� au moyen de la clause GROUP BY suivi du nom de l'attribut � l'origine du groupement.# #M#A#X# ##P#o#u#r# #c#h#a#q#u#e# #n#i#v#e#a#u# #d## e#m#p#l#o#i# #(#t#a#b#l#e# #e#m#p#l#o#y#�#s#.000. SUM(cumulannuel_ventes) FROM titres GROUP BY type type ---------------------------------. Elle porte en g�n�ral sur la valeur d�une fonction de groupe�: seuls les groupes r�pondant au crit�re sp�cifi� par HAVING feront parti du r�sultat. SUM(avance).cui_moderne cui_traditio gestion informatique psychologie Regrouper les titres en fonction du type.00 30788 informatique 51. SUM(avance).#CARSPECIAUX 45 \f "Symbol" \s 10 \h# �AVG. MIN.00 24278 cui_traditio 43.----------. #CARSPECIAUX 45 \f "Symbol" \s 10 \h# �SUM. Vous pouvez regrouper vos donn�es par nom de colonne ou en fonction des r�sultats des colonnes calcul�es lorsque vous utilisez des donn�es num�riques..00 12875 psychologie 29.000. etc. en se limitant aux types qui d�butent pas par la lettre �c�SELECT typeFROM titresGROUP BY type HAVING type LIKE 'c%'type------------cui_modernecui_traditioRegrouper les titres en fonction du type par �diteur. fait la moyenne (Average) des valeurs de l'attribut.cui_moderne 51.#CARSPECIAUX 45 \f "Symbol" \s 10 \h# �MAX. des op�rateurs sur les dates. et en triant les r�sultats en fonction des num�ros d'identification des �diteurs:SELECT id_�diteur.000.000. datepu#b#. En l'absence de cette clause tous les tuples s�lectionn�s forment le groupe.# #M#I#N#..# #C#O#U#N#T#.

Une instruction de jointure:� sp�cifie une colonne dans chaque table .#v#i#l#l#e####:� �E#x#e#r#c#i#c#e# #9#�#:# #J#o#i#n#t#u#r#e# #e#n#tre trois tables Afficher les noms des auteurs parisiens.-------------------Xavier Schildwachter Algodata Infosystems Alain D'Autricourt Editions Lucerne Charles Mathieu Editions Lucerne Jean-R�my Facq Editions LucerneMarc Jalabert Editions Lucerne # # # # # # # # # # # # # # # # # # # # # # ##P#a#t#r#i#c#i#a# # # # #M#e#r#r#e#l#l# # # # # # # # # # # # #E#d#i#t#i#o#n#s# #L#u#c#e#r#n#e####O#u# #a#v#e#c# #l## o#p#�#r#a#t#e#u#r# #J#O#I#N# #d#a#n#s# #l#a# #s#y#n#t#a#x#e# #S#Q#L# #2#�#:###S#E#L#E#C#T# #p#n#_#a#u#t#e#u#r#.# #n#o#m#_#�#d#i#t#e#u#r##F#R#O#M# #a#u#t#e#u#r#s# ##J#O#I#N# #�#d#i#t#e#u#r#s# #o#n# #a#u#t#e#u#r#s#.00 cui_moderne 136.00 sum ========================== 157. nom_�diteurFROM auteurs.#v#i#l#l#e# #=# #�#d#i#t#e#u#r#s#.villepn_auteur nom_auteur nom_�diteur----------------------------.cui_moderne 21..� forme de nouvelles lignes en combinant les lignes qui contiennent les valeurs retenues dans la comparaison. MAXPour chaque Identificateur de titre. en se limitant aux pays dont le nom contient un 'S' ou un 'R' Infos de d�tails ET infos globales�: COMPUTELa clause COMPUTE est employ�e dans des instructions SELECT avec des fonctions d'agr�gation ligne ######################################################################�� #S#U#M#.-------. leur pays et leur ville en les classant par ville (infos de d�tail).# #c#e# #q#u#i# #v#o#u#s# #p#e#r#m#e#t# #de visualiser les lignes d�tail et les lignes de statistiques dans un seul ensemble de r�sultats. calculer les droits pr�vus maximum (table droits_pr�vus. prixFROM titresWHERE type like 'cui%'ORDER BY type. les titres et les .ville = �diteurs. et le nombre d�auteurs par pays (r�capitulatif) Travail sur plusieurs tables�: les jointures ######################&� �D#o#c#.##C#e#s# #v#a#l#e#u#r#s# #s#t#a#t#i#s#t#i#q#u#e#s# #a#p#p#a#r#a#i#s#s#e#n#t# #s#o#u#s# #f#o#r#m#e# #d#e# #l#i#g#n#e#s# #s#u#p#p#l#�#m#e#n#t#a#i#r#e#s# #d#a#n#s# #l#e#s# #r#�#s#u#l#t#a#t#s# #d#e# #l#a# #r#e#q#u#�#t#e#. Exemple de jointure�: nom des auteurs et des �diteurs vivant dans la m�me ville : SELECT pn_auteur.# #M#I#N#.# #6#1# #�# #7#8###L#e#s# #o#p#�#r#a#t#i#o#n#s# #d#e# #j#o#i#n#t#u#r#e# #p#e#r#m#e#t#t#e#n#t# #d#'#e#x#t#r#a#i#r#e# #d#e#s# #d#o#n#n#�#e#s# #�# #p#a#r#t#i#r# #d#e# #p#l#u#s#i#e#u#r#s# #t#a#b#l#e#s# #o#u# #v#u#e#s# #d#a#n#s# #l#a# #m#�#m#e# #b#a#s#e# #d#e# #d#o#n#n#�#e#s# #o#u# #d#a#n#s# #d#e#s# #b#a#s#e#s# #d#i#f#f#�#r#e#n#t#e#s# #e#n# #n#'#e#f#f#e#c#t#u#a#n#t# #q#u#'une seule op�ration.� compare les valeurs de ces colonnes ligne par ligne .# #A#V#G#.# #e#n# #l#i#g#n#e#�#:# # #�#�#P#r#i#n#c#i#p#e# #d#e# #b#a#s#e# #d#e#s# #j#o#i#n#t#u#r#e#s#�#�## # # # # # # # #S#Q#L#2#�#:# #p#.#p#l#u#s# #r#�#c#e#n#t# #d#a#n#s# #l#e# #n#i#v#e#a#u###E#x#e#r#c#i#c#e# #6#�#:# #G#R#O#U#P# BY. colonne droits) Exercice 7�: GROUP BY.# #e#t# #l#e# #n#o#m#b#r#e# #d#e# #l#i#v#r#e#s# #d#a#n#s# #l#e# #n#i#v#e#a#u# # #(#r#�#c#a#p#i#t#u#l#a#t#i#f#)#droits id_titre minimum maximum ----------.----------.. et ensuite � utiliser les lignes s�lectionn�es dans les r�sultats de cette comparaison pour cr�er une nouvelle table.# #a#f#f#i#c#h#e#r# #l#e#s# #i#d#e#n#t#i#f#i#c#a#t#e#u#r#s# #d#e#s# #l#i#v#r#e#s# #c#o#r#r#e#s#p#o#n#d#a#n#t#.Exemple�: somme des prix des diff�rents types de livres de cuisineSELECT type.etc� Afficher les noms d�auteurs. prixCOMPUTE SUM(prix) BY typetype prix ------------------------------------. �diteursWHERE auteurs. nom_auteur.# #l#e# #m#i#n# #e#t# #l#a# #m#a#x# #d#e# #v#e#n#t#e#s# #d#o#n#n#a#n#t# #d#r#o#i#t# #�# #c#e# #n#i#v#e#a#u# #(#i#n#f#o#s# #d#e# #d#�#t#a#i#l#s#)#.----------.00 # # # # # # # # # # # # # # # #####:� �E#x#e#r#c#i#c#e#�#8#�#:# #C#O#M#P#U#T#E###P#o#u#r# #c#h#a#q#u#e# #n#i#v#e#a#u# #d#e# #d#r#o#i#t#s#.# #M#A#X# #e#t# #C#O#U#N#T# #�� #p#o#u#r# #g#�#n#�#r#e#r# #d#e#s# #v#a#l#e#u#r#s# #s#t#a#t#i#s#t#i#q#u#e#s# #�# #p#a#r#t#i#r# #d#e# #v#a#l#e#u#r#s# #c#o#n#t#e#n#u#e#s# #d#a#n#s# #d#e#s# #g#r#o#u#p#e#s# #d#e# #l#i#g#n#e#s#.# #n#o#m#_#a#u#t#e#u#r#.10 BU1032 0 5000 10 PC1035 0 2000 10 BU2075 0 1000 count ======== 3. Joindre deux ou plusieurs tables revient � comparer les donn�es de colonnes sp�cifiques. clause sur un sous-ensemble HAVING Afficher le nombre des �diteurs regroup�s par pays.

SUMAfficher les noms des auteurs qui ont vendu au moins 20 livres. et le nombre de livres qu�ils ont vendus (tables auteurs. titreauteur. ou d'une autre sous-requ�te�: une sous-requ�te peut porter sur la m�me table que la requ�te externe ou sur une autre table.Dans Transact-SQL.Binnet & Hardley Les festins de Parly 2 Fricative Bookshop 10 Binnet & Hardley Les micro-ondes par gourmandise Doc-U-Mat: Quality Laundry and Books 25 sum ====== 35 Exercice 11�: jointure sur 4 tables.. et le nombre d�exemplaires vendus au total par chaque �diteur�: nom_�diteur titre nom_mag qt -------------------------------------------------------------------------------------------------------------------------------------------------------------. Le fait d'imbriquer une instruction SELECT � l'int�rieur d'une autre explique la pr�sence du mot �structur� dans l'expression �langage d'interrogation structur� (SQL. le nombre d�exemplaires vendus dans chaque magasin. Le niveau d'imbrication n'est pas limit�.Une sous-requ�te peut s'imbriquer dans une clause WHERE. les titres des livres qu�il publie. Exercice 14). INSERT.Algodata Infosystems Guide des bases de donn�es du gestionnaire press� Eric the Read Books 5 Algodata Infosystems Guide des bases de donn�es du gestionnaire press� Bookbeat 10 Algodata Infosystems La cuisine . afficher le nom de l��diteur. {nom_de_table16 | nom_de_vue16}[conseilsoptimiseur]]] #[clause WHERE]#[clause GROUP BY]#[clause HAVING])L'instruction SELECT d'une sous-requ�te se place toujours entre parenth�ses.-----.Il existe deux cat�gories de . {nom_de_table2 | nom_de_vue2}[conseils-optimiseur] # [.# #U#P#D#A#T#E# #o#u# #D#E#L#E#T#E.. Structured Query Language). GROUP BY. ORDER BY. ou dans une autre sous-requ�te.prix de leurs livresExercice 10�: Jointure sur quatre tables. UPDATE ou DELETE. une sous-requ�te qui renvoie une seule valeur peut s'employer dans toutes les circonstances o� une expression est autoris�e.Une sous-requ�te imbriqu�e dans une instruction SELECT externe pr�sente la syntaxe suivante:(SELECT [ALL | DISTINCT] liste_de_s�lection_de_la_sous-requ�te #[FROM {nom_de_table | nom_de_vue}[conseils-optimiseur] # [[. COMPUTE Pour chaque �diteur. titres.# #I#N#S#E#R#T#.# #e#n# #l#i#g#n#e#�#:# # #�#�#C#o#n#c#e#p#t#s# #d#e# #r#e#q#u#�#t#e#s# #a#v#a#n#c#�#e#s#�#�#�#:# #�#�#P#r#i#n#c#i#p#e# #d#e# #b#a#s#e# #d#e#s# #s#o#u#s#-# ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #r#e#q#u#�#t#e#s#�#�###U#n#e# #s#o#u#s#-#r#e#q#u#�#t#e# #e#s#t# #u#n#e# #i#n#s#t#r#u#c#t#i#o#n# #S#E#L#E#C#T# #i#m#b#r#i#q#u#�#e# #�# #l#'#i#n#t#�#r#i#e#u#r# #d#'#u#n#e# #i#n#s#t#r#u#c#t#i#o#n# #S#E#L#E#C#T#. les noms des magasins o� ils sont vendus.Les instructions SELECT qui incluent au moins une sous-requ�te sont parfois appel�es requ�tes imbriqu�es ou instructions SELECT imbriqu�es.-----. Elle ne peut pas contenir de clause ORDER BY ou COMPUTE.A noter le cas particulier des requ�tes imbriqu�es plac�es apr�s le SELECT. ventes) Les sous-requ�tes ################################################################################### ################################################################################### ########&� �D#o#c#. ou HAVING d'une instruction externe SELECT.. HAVING. qui permettent d�afficher une colonne calcul�e (Cf.l'ordinateur : bilans clandestins Bookbeat 25 Algodata Infosystems Toute la v�rit� sur les ordinateurs Fricative Bookshop 15 sum ====== 55 nom_�diteur titre nom_mag qt -------------------------------------------------------------------------------------------------------------------------------------------------------------.

=> 99.1) trouver le prix maximumSELECT max(prix)FROM titres-. on peut proc�der en deux �tapes. sur un cas particulier. pn_auteurFROM auteurs auWHERE id_auteur IN . ALL. mais aussi les auteurs qui n�ont pas encore publi� de livres (et ne figurent donc pas dans la table titreauteur)Pour s�assurer du bon fonctionnement de l�op�rateur ALL. prixFROM titresWHERE prix = (SELECT prix FROM titres WHERE titre = 'Toute la v�rit� sur les ordinateurs')Avec la m�me d�marche de construction progressive. et inf�rieur ou �gal � la moyenne des prix.0/3)and (prix <= 99.2) trouver la moyenne des prixSELECT avg(prix)FROM titres-.00 En substituant � la constante 136.=> 156.------------Toute la v�rit� sur les ordinateurs 136. prixFROM titresWHERE prix = 136titre prix --------------------------------------------.00 Les secrets de la Silicon Valley 136. il faut toujours doubler la sous-requ�te avec ALL d�une sous-requ�te d�existence�:SELECT nom_auteur.4-. en utilisant ce r�sultat dans une seconde requ�te pour trouver les livres qui ont le m�me prix�: SELECT titre. ANY . la requ�te qui calcule ce prix.id_auteur = ta. pn_auteurFROM auteurs auWHERE id_auteur IN (SELECT id_auteur FROM titreauteur)Order by nom_auteurAvec l�op�rateur EXISTS�:SELECT nom_auteur. dont tous les livres valent 136 F.id_auteur)ORDER BY nom_auteur. EXISTSM�thode de construction des sous-requ�tes renvoyant une et une seule valeur Pour trouver tous les livres de m�me prix que le livre ��Toute la v�rit� sur les ordinateurs��.id_auteur = ti.#i#d#_#a#u#t#e#u#r#)##O#r#d#e#r# #b#y# #n#o#m#_#a#u#t#e#u#r## #%� �R#e#m#a#r#q#u#e#r# #l#a# #j#o#i#n#t#u#r#e# #s#u#p#p#l#�#m#e#n#t#a#i#r#e# #e#n#t#r#e# #l#a# #t#a#b#l#e# #a#u#t#e#u#r#s# #d#e# #l#a# #r#e#q#u#�#t#e# #p#r#i#n#c#i#p#a#l#e# #e#t# #l#a# #t#a#b#l#e# #t#i#t#r#e#a#u#t#e#u#r# #d#e# #l#a# #r#e#q#u#�#t#e# #i#m#b#r#i#q#u#�#e#.4) -.3) Ecrire la requ�te principale avec ces constantesSELECT titreFROM titresWHERE (prix >= 156.00 Privation durable d'informations : �tude� 136.-. on obtient la solution avec sous-requ�te�:SELECT titre.id_auteurORDER BY nom_auteur. la proposition principale qui fournit la requ�te principale et les propositions subordonn�es qui fournissent les crit�res de choix�. La requ�te cidessus trouve donc les auteurs recherch�s.00 Les festins de Parly 2 136. pn_auteurFROM auteurs au.sous-requ�tes�: les sous-requ�tes qui renvoient une et une seule valeur directement manipulable par des op�rateurs de comparaison. introduites par un op�rateur de comparaison modifi� par ANY ou ALL�:Exemple�1 : Afficher les noms et les pr�noms des auteurs dont tous les livres ont un prix de 136 F SELECT nom_auteur. en cherchant d�abord le prix du livre ��Toute la v�rit� sur les ordinateurs�� :SELECT prixFROM titresWHERE titre = 'Toute la v�rit� sur les ordinateurs'prix ------136. et les requ�tes ensemblistes qui renvoient des listes manipulables par les op�rateurs ensemblistes IN.id_titre AND au.00-. pn_auteurFROM auteurs auWHERE EXISTS (SELECT id_auteur FROM titreauteur WHERE id_auteur = au#. on peut r�pondre � des questions plus complexes�: dans tous les cas. pn_auteurFROM auteurs auWHERE 136 = ALL (SELECT prix FROM titres t. titreauteur ta WHERE t.id_titre = ta. pn_auteur Lorsqu�une requ�te imbriqu�e ne renvoie rien. sans sous-requ�te�:SELECT DISTINCT nom_auteur.Exemple�: Afficher les titres des livres dont le prix est sup�rieur ou �gal au tiers du prix maximum. chaque subordonn�e devient une requ�te imbriqu�e qu'il faudra d'abord tester ind�pendamment.00Puis.# #p#a#r# #r#a#p#p#o#r#t# #�# #l#a# #s#o#l#u#t#i#o#n# #a#v#e#c# #l## o#p#�#r#a#t#e#u#r# #I#N####D#a#n#s# #c#e# #c#a#s# #p#a#r#t#i#c#u#l#i#e#r#.4) R��crire la requ�te principale en substituant les requ�tes imbriqu�es aux 2 constantesSELECT titreFROM titresWHERE prix >= (SELECT max(prix) FROM titres ) /3 and prix <= (SELECT avg(prix) FROM titres ) Sous-requ�tes ensemblistes Utilisation de IN et EXISTS pour tester l�appartenance d�un nuple � une liste construite par une requ�te imbriqu�e Exemple� : Afficher les noms et les pr�noms des auteurs qui ont �crit au moins un livre (donc qui figurent dans la table titreauteur)Avec l�op�rateur IN�:SELECT nom_auteur. il faut rep�rer dans la question. toutes les expressions avec l�op�rateur ALL sont vraies�: on peut tout dire de l�ensemble vide.# #l#e# #p#r#o#b#l#�#m#e# #e#st r�ductible � une requ�te simple. titreauteur tiWHERE au. pn_auteurSousrequ�tes op�rant sur des listes.

titreauteur ta WHERE t.id_auteur = ta.# #E#X#I#S#T#. MAXAfficher le titre du livre le plus cher (maximum de titre.pn_auteurFROM auteursWHERE ville = 'Paris' .prix)Exercice 14 : 1 sous-requ�te utilis�e dans la clause SELECT. titreauteur ta WHERE au. tous magasins confondus (tables titres et ventes)Exercice 15 : 1 sous-requ�te.## # ###:� �E#x#e#r#c#i#c#e# #1#2#�#:# # #2# #s#o#u#s#-#r#e#q#u#�#t#e#s#.# #A#L#L# ##A#f#f#i#c#h#e#r# #l#e#s# #n#o#m#s# #e#t# #p#r#�#n#o#m#s# #p#a#r# #o#r#d#r#e# #a#l#p#h#a#b#�#t#i#q#u#e# #d#e#s# #a#u#t#e#u#r#s# #q#u#i# #p#o#s#s#�#d#e#n#t# #1#0#0#%# #d#e# #d#r#o#i#t#s# #s#u#r# #t#o#u#s# #l#e#u#r#s# #l#i#v#r#e#s# #�#!# # #(#t#i#t#r#e#a#u#t#e#u#r#.id_titre AND au.(SELECT id_auteur FROM titreauteur)and 136 = ALL ( SELECT prix FROM titres t. et le nom du magasinExercice 15 bis�: Afficher le nom et l�identificateur des �diteurs qui �dite#n#t# #d#e# #l#a# #g#e#s#t#i#o#n# #e#t# #p#a#s# #d## i#n#f#o#r#m#a#t#i#q#u#e###A#f#f#i#c#h#e#r# #l#e# #n#o#m# #e#t# #l## i#d#e#n#t#i#f#i#c#a#t#e#u#r# #d#e#s# #�#d#i#t#e#u#r#s# #q#u#i# #n#e# #f#o#n#t# #p#a#s# #d## a#v#a#n#c#e# #s#u#r# #t#o#u#s# #l#e#u#r#s# #l#i#v#r#e#s##### #L## o#p#�#r#a#t#e#u#r# #e#n#s#e#m#b#l#i#s#t#e# #U#N#I#O#N##&� �D#o#c#. pn_auteurSi l�ensemble construit par la sous-requ�te est vide. toutes les comparaisons contruites sur l�op�rateur ANY sont fausses�: il est inutile de doubler les sous-r#e#q#u#�#t#e#s# #a#v#e#c# #A#N#Y# #d## u#n# #t#e#s#t# #d## e#x#i#s#t#e#n#c#e#. SUM Afficher la liste des titres dans l�ordre alphab�tique et le cumul de leurs ventes. MAXAfficher le titre du livre le plus vendu de tous les magasins. pn_auteurFROM auteursWHERE ville = 'Gen�ve'UNIONSELECT nom_auteur.# #e#n# #l#i#g#n#e#�#:# #�#�#C#o#n#c#e#p#t#s# #d#e# #r#e#q#u#�#t#e#s# #a#v#a#n#c#�#e#s#�#�#�#:# #�#�#C#o#m#b#i#n#a#i#s#o#n# #d#e#s# #r#�#s#u#l#t#a#t#s# #a#v#e#c UNION��Exemple�: Noms.id_titre = ta.id_titre = ta. pn_auteurFROM auteurs auWHERE 136 = ANY (SELECT prix FROM titres t.id_titre) ORDER BY nom_auteur.id_auteur = ta.id_auteur AND t.#d#r#o#i#t#s#_#p#o#u#r#c#e#n#t# # #=# #1#0#0# #p#o#u#r# #t#o#u#s# #les livres)Exercice 13 : 1 sous-requ�te. pr�noms des auteurs habitant Gen�ve ou Paris�SELECT nom_auteur. pn_auteurExemple�2 : Afficher les noms et les pr�noms des auteurs dont au moins un livre a un prix de 136FSELECT nom_auteur.id_auteur)ORDER BY nom_auteur.

#CARSPECIAUX 70 \f "Wingdings" \s 18 \h# si la clause SELECT comporte des fonctions de groupes.#CARSPECIAUX 70 \f "Wingdings" \s 18 \h# pour fusionner les r�sultats de deux clauses SELECT utiliser l'op�rateur UNION. sauf les fonctions de groupe.Synth�se sur les principes d��criture d�une requ�te SELECT#CARSPECIAUX 70 \f "Wingdings" \s 18 \h# d�terminer les tables utilis�es et les indiquer dans la clause FROM.#CARSPECIAUX 183 \f "Symbol" \s 14 \h# lorsqu'il faut extraire des informations d'une table et qu'une autre table est n�cessaire pour conditionner la s�lection des tuples de la premi�re une requ�te imbriqu�e s'impose. #CARSPECIAUX 70 \f "Wingdings" \s 18 \h# fixer les crit�res de recherche par HAVING sur les groupes et par WHERE sur des valeurs individuelles. utiliser une clause GROUP BY reprenant tous les attributs cit�s dans le SELECT.#CARSPECIAUX 70 \f "Wingdings" \s 18 \h# pour utiliser une fonction sur les groupes dans un WHERE ou s'il faut utiliser une valeur d'attribut d'une autre table utiliser une requ�te imbriqu�e.#CARSPECIAUX 70 \f "Wingdings" \s 18 \h# pr�ciser l'ordre de rangement des r�sultats par une clause ORDER BY#CARSPECIAUX 70 \f "Wingdings" \s 18 \h# Jointures ou SELECT imbriqu�es�? #CARSPECIAUX 183 \f "Symbol" \s 14 \h# une jointure est indispensable pour traduire une requ�te o� il s'agit de visualiser des informations �manant de plusieurs tables. .#CARSPECIAUX 70 \f "Wingdings" \s 18 \h# lister les attributs � visualiser dans la clause SELECT.

DELETE.# #T#o#u#s# #l#e#s# #c#h#a#m#p#s# #o#b#l#i#g#a#t#o#i#r#e#s# #(#n#o#n# #N#U#L#L#)# #d#o#i#v#e#n#t# #�#t#r#e# #r#e#n#s#e#i#g#n#�#s#.# #S#u#p#p#r#e#s#s#i#o#n# # # # # # # # # # # # # # # # # # ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #d#e# # #d#o#n#n#�#e#s## # #S#Q#L#2#�#:# #p#. constante2.----. Exercice 17�: Recopier toutes les caract�ristiques d�un auteur en lui donnant un nouvel identificateur. INSERT auteurs (id_auteur.--------------------------------.# #7#9# #�# #8#2###D#a#n#s# #S#Q#L# Server. ville. colonnes dans le m�me ordre�:INSERT auteursSELECT *FROM nouveaux_auteurs Insertion de donn�es provenant d�une autre table. Voici la syntaxe simplifi�e :INSERT nom_de_table#SELECT liste_de_colonne#FROM liste_de_table#WHERE crit�res_de_s�lectionInsertion de donn�es provenant de la m�me table par une instruction SELECT�:INSERT �diteurs SELECT '9980'. 'ok'. Vous pouvez modifier des donn�es dans une seule table par instruction.# #n#o#m#_#a#u#t#e#u#r#.0736 New Moon Books Boston MA USA0877 Binnet & Hardley Washington DC USA1389 Algodata Infosystems Bruxelles BE1622 Five Lakes Publishing Chicago IL USA1756 Ramona. '1389'.# #s#a#u#f# #c#e#u#x# #q#u#i# #p#o#s#s#�#dent une valeur par d�faut (t�l�phone). et un nouveau nom. paysFROM �diteursWHERE nom_�diteur = 'New Moon Books'Nouveau contenu de la table�: id_�diteur nom_�diteur ville r�gion pays-----. 'Plus vite!'. pn_auteur = 'Roland'WHERE nom_auteur = 'Bec'Mise � jour de la colonne cumulannuel_ventes de la table titres. NULL. INSERT INTO magasins (id_mag. '14/06/95')Ajout de certaines colonnes�: les colonnes ignor�es doivent �tre d�finies pour permettre des valeurs NULL. sa valeur par d�faut est utilis�e.# #a#v#e#c# #u#n# #i#d#e#n#t#i#f#i#c#a#t#e#u#r# #q#u#i# #n## e#x#i#s#t#e# #p#a#s# #d#�#j#�#. 'gestion'. la table nouveaux_auteurs contient les colonnes id_auteur. Voici comment modifier sa ligne dans la table auteurs : UPDATE auteursSET nom_auteur = 'Perceval'.# #M#o#d#i#f#i#c#a#t#i#o#n#.Mise � jour d�une base de donn�es ################################################################################### ################################################################################### ####################&� �D#o#c#.# #p#n#_#a#u#t#e#u#r#. nom_auteur. 'Les livres de Marie')Vous pouvez �galement utiliser une instruction SELECT dans une instruction INSERT pour ins�rer des valeurs s�lectionn�es dans une ou plusieurs autres tables ou vues. NULL. NULL. Transact-SQL vous permet de baser vos modifications sur des donn�es contenues dans d'autres tables. R�afficher la table. m�me celles d'autres bases de donn�es. vous pouvez ajouter ou modifier des donn�es au moyen des instructions de modification de donn�es INSERT. adresse. �diteur Lausanne CH9901 GGG&G Munich (null) GER9952 Scootney Books New York NY USA 9980 test Boston MA USA9999 Editions Lucerne Paris (null) FRInsertion de donn�es provenant d�une autre table. .)Ajout de toutes les colonnes d�une ligne�: INSERT titresVALUES ('BU2222'.. Si vous sautez une colonne avec la contrainte DEFAULT.. et UPDATEINSERT ajoute une nouvelle ligne � une table . r�gion. Ajout�de lignes�: INSERT Le mot-cl� VALUES est utilis� pour sp�cifier les valeurs de certaines ou de toutes les colonnes dans une nouvelle ligne�:INSERT nom_de_table#VALUES (constante1. Relancer la m�me requ�te et interpr�ter le message d�erreur. Modification�de lignes�: UPDATEArthur Bec d�cide par exemple de modifier son nom en Roland Perceval. adresse. pn_auteur et nom_auteur .# #d#a#n#s# #l#a# #t#a#b#l#e# #a#u#t#e#u#r#s#. pn_auteur.# #a#d#r#e#s#s#e##F#R#O#M# #n#o#u#v#e#a#u#x#_#a#u#t#e#u#r#s## # ##:� �E#x#e#r#c#i#c#e# #1#6#�#:# # ##R#e#n#t#r#e#r# #v#o#s# #n#o#m#s#.UPDATE modifie les lignes . NULL.# #p#r#�#n#o#m#s#. 'test'. pn_auteur)SELECT * FROM nouveaux_auteursouINSERT auteursSELECT id_auteur. avec la somme des ventes les plus r�centes enregistr�es dans la table ventes :UPDATE titres .DELETE supprime une ou plusieurs lignes .# #e#n# #l#i#g#n#e#�#:# #�#�#A#c#c#�#d#e#r# #a#u#x# #d#o#n#n#�#e#s# #e#t# #l#e#s# #m#o#d#i#f#i#e#r#�#�#�#:# # #A#j#o#u#t#. nom_mag)VALUES ('1229'. nom_auteur et adresse. colonnes dans un autre ordre�: la table auteurs contient les colonnes id_auteur.

Toutefois.# #s#o#u#s# #v#o#t#r#e# #n#o#m# #d#e# #c#o#n#n#e#x#i#o#n# #N#T# #h#a#b#i#t#u#e#l#.# #e#n# #l#i#g#n#e#�#:# #�#�#A#c#c#�#d#e#r# #a#u#x# #d#o#n#n#�#e#s# #e#t# #les modifier���: ��El�ments de syntaxe Transact SQL�� -> ��Utilisation des types de donn�es��La premi�re �tape consiste � cr�er des ��domaines��. int� entier dont la valeur est .DELETE titresFROM auteurs.id_auteur AND ville = 'Bruxelles'Remarque La relation cl� primaire/cl� �trang�re entre titres. Comme en C ou en Pascal.## #### #S#u#p#p#r#e#s#s#i#o#n# #d#e# #l#i#g#n#e#s#�#:# #D#E#L#E#T#E## #S#u#p#p#o#s#o#n#s# #q#u#'#u#n#e# #o#p#�#r#a#t#i#o#n# #c#o#m#p#l#e#x#e# d�bouche sur l'acquisition de tous les auteurs de Bruxelles et de leurs ouvrages par un autre �diteur. mais vous ne connaissez pas leur titre ni leur num�ro d'identification.# ### #C#r#e#a#t#i#o#n# #d#e# #l#a# #b#a#s#e# #�#c#o#m#p#a#g#n#i#e# #a#e#r#i#e#n#n#e#�# #&� # #D#o#c#.# #d#a#n#s# #l#e#s# #e#x#e#r#c#i#c#e#s# #1#6# #e#t# #1#7#. qui s�appliqueront aux colonnes ou attributs des tables et des colonnes. de m�me que l�administrateur a tous les droits sur la totalit� du SGBDR. et en utilisant ensuite ces num�ros pour trouver les num�ros d'identification des ouvrages dans la table titreauteur.id_titre = titreauteur. Vous devez effectuer des effacements s�par�s pour supprimer les lignes pertinentes dans les autres tables que la table titres.L�administrateur (compte sa) vous a accord� le droit de cr�er une nouvelle base de donn�e.id_titre et titreauteur. � partir des types pr�d�finis du langage SQL�:� bit� entier dont la valeur est 1 ou 0.# #V#�#r#i#f#i#e#r# #l## o#p#�#r#a#t#i#o#n# #p#a#r# #u#n#e# #c#o#m#m#a#n#d#e# #S#e#l#e#c#t# #a#d#�#q#u#a#t#e#. ��data base owner��)�: le dbo a tous les droits sur sa base. smallint entier dont la valeur est comprise entre -215 (-32 768) et 215 . les domaines sont d�finis par le propri�taire de la base de donn�es. on va construire compl�tement la base de donn�es ��Compagnie A�rienne�� qui a �t� pr�sent�e au d�but.id_titre AND auteurs. La seule information dont vous disposez concerne le nom de la ville o� r�sident ces auteurs.Vous pouvez effacer les lignes dans la table titres en retrouvant les num�ros d'identification des auteurs pour les lignes qui ont Bruxelles comme ville dans la table auteurs. tinyint� entier dont la valeur est comprise entre 0 et 255. titreauteurWHERE titres. ################################################################################### ###########################:� �L#o#g#u#e#z# #v#o#u#s# #a#v#e#c# #�#�#l## A#n#a#l#y#s#e#u#r# #d#e# #r#e#q#u#�#t#e#�#�#. seules les lignes dans la table titres qui r�pondent aux conditions de la clause WHERE sont effac�es.# #s#a#n#s# #m#o#t# #d#e# #p#a#s#s#e#.# #a#v#a#n#t# #e#t# #a#p#r#�#s# #l## a#u#g#m#e#n#t#a#t#i#o#n#. En d'autres termes.1 (32 767). titres.# #a#f#i#n# #d#e# #r#e#m#e#t#t#r#e# #l#a# #t#a#b#l#e# #d#a#n#s# #s#o#n# #�#t#a#t# #i#n#i#t#i#a#l#.id_titre AND ventes. une triple jointure est requise pour trouver les lignes que vous souhaitez effacer dans la table titres. c�est-�dire des types de donn�es.id_titre = titres. dont vous serez propri�taire�(compte dbo.# #e#n# #l#i#g#n#e#�#:# # #�#�#C#r#�#e#r# #e#t# #m#a#i#n#t#e#n#i#r# #d#e#s# #b#a#s#e#s# #d#e# #d#o#n#n#�#e#s#�#�### #I#n#troductionDans ce chapitre.date_cmd IN (SELECT MAX(date_cmd) FROM ventes)) ################################################################################### ################################################################################### ################:� �E#x#e#r#c#i#c#e# #1#8#�#:# # ##A#u#g#m#e#n#t#e#r# #d#e# #1#0#%# #t#o#u#s# #l#e#s# #p#r#i#x# #d#e#s# #l#i#v#r#e#s# #d#e# #l## �#d#i#t#e#u#r# #�#�#A#l#g#o#d#a#t#a# #I#n#f#o#s#y#s#t#e#m#s#�#. Vous devez imm�diatement supprimer tous ces ouvrages de la table titres.# #e#t# #t#a#p#e#z# #l#a# #r#e#q#u#�#t#e# #S#Q#L# #d#e# #c#r#�#a#t#i#o#n# #d#e# #b#a#s#e# #d#e# #d#o#n#n#�#e#s#�#:##C#R#E#A#T#E# #D#A#T#A#B#A#S#E# #A#i#r#X#X#X### # #C#r#�#a#t#i#o#n# #d#e#s# #d#o#m#a#i#n#e#s# ##&� �D#o#c#.SET cumulannuel_ventes = cumulannuel_ventes + (SELECT SUM(qt) FROM ventes WHERE ventes.id_auteur = titreauteur.id_titre vous emp�che d'ex�cuter cet effacement parce que la cl� �trang�re ne permettra pas que vous effaciez des titres ecore r�f�renc�es dans titreauteur�: effacez en premier ces r�f�rences#######:� �E#x#e#r#c#i#c#e# #1#9#�#:# ##D#�#t#r#u#i#r#e# #l#e#s# #l#i#g#n#e#s# #c#r#�#�#e#s# #d#a#n#s# #l#a# #t#a#b#l#e# #a#u#t#e#u#r#.Les trois tables sont donc comprises dans la clause FROM de l'instruction DELETE.

'VARCHAR(50)'.SQL qui supprime tous les objets que l�on vient de traiter. binary donn�es binaires de longueur fixe ne pouvant pas d�passer 8 000 octets. (=> date du vol dans la table Affectation). Obligatoire (=> identificateur du constructeur dans la table Constructeur)TypeIdAeroport : cha�ne fixe de 3 caract�res. text texte de longueur variable ne pouvant pas d�passer 231 . (=> nom du pilote dans la table Pilote et du constructeur dans la table Constructeur)TypePrenom�: cha�ne variable limit�e � 30 caract�res. char cha�ne de caract�res de longueur fixe d'un maximum de 8 000 caract�res. avec une pr�cision de trois centi�mes de seconde ou de 3. pour s�assurer que tous les objets se cr�ent correctement.1 (+922 337 203 685 477. avec une pr�cision d'une minute. contrainte_de_valeur_NULL]nom_de_type�: Nom du type de donn�es d�fini par l'utilisateur. (=> type d�avion dans les tables Type et Avion)TypeIdConstructeur : entier (smallint).79E + 308.�Obligatoire. on doit donc aboutir � deux scripts complets qui permettent de maintenir la base (en la recr�ant compl�tement en cas de crash syst�me�) Etape 1�: cr�ation des types utilisateurs�:TypeDate�: type pr�d�fini datetime. Obligatoire ( => identificateur du pilote dans la table Pilote)TypeNumVol : cha�ne fixe de 5 caract�res. #LIENHYPERTEXTE "ia-iz_5. TypeHoraire�: type pr�d�fini smalldatetime. type_physique�: Nom du type de donn�es physique pr�d�fini de SQL Server sur lequel repose le type de donn�es d�fini par l'utilisateur. avec une pr�cision d'un dix-milli�me d'unit� mon�taire. type_physique [.214 748.�Obligatoire. smalldatetime Donn�es de date et d'heure comprise entre le 1er janvier 1900 et le 6 juin 2079.#S#Q#L#. float Donn�es num�riques de pr�cision en virgule flottante comprises entre -1.580 7). SQL Server ne fait pas de diff�rence entre les majuscules et les minuscules pour les noms de type de donn�es syst�me.3647. numeric Synonyme de decimal.1 (2 147 483 647) caract�res.79E + 308 et 1.40E + 38. (=> pr�nom du pilote dans la table Pilote)TypeAvion�: cha�ne variable limit�e � 20 caract�res.1 (2 147 483 647) octets. Apr�s chaque exercice. on relancera les scripts de suppression et de cr�ation. A la fin de ce chapitre. avec une pr�cision d'un dix-milli�me d'unit� mon�taire.33 millisecondes. (=> identificateur de l�a�roport dans la table A�roport) TypeIdPilote : entier (smallint). Obligatoire (=> identificateur du vol dans la table Vol)TypeVille : cha�ne variable limit�e � 50 caract�res. Obligatoire (=> heures de d�part et d�arriv�e. Obligatoire. Sous SQL SERVER il faut appeler la proc�dure syst�me sp_addtype (system procedure add type). contrainte_de_valeur_NULL�: Param�tre indiquant comment g�rer des valeurs NULL dans un type de donn�es d�fini par l'utilisateur (vaut NULL ou NOT NULL). Optionnel.smallmoney� Valeurs de donn�es mon�taires comprises entre . par le mot cl� execute execute sp_addtype TypeNom.580 8) et 263 . Obligatoire.# # ###O#n# #c#o#m#m#e#n#t#e#r#a# #c#h#a#c#u#n#e# #d#e#s# #�#t#a#p#e#s# #d#u# #s#c#r#i#p#t# #(#c#o#m#m#e#n#t#a#i#r#e# #T#r#a#n#s#a#c#t# #S#Q#L#�#:# # #/#*# #p#l#u#s#i#e#u#r#s# #l#i#g#n#e#s# #*#/# #o#u# #-#-# #f#i#n# #d#e# #l#i#g#n#e#)###O#n# #d#�#v#e#l#o#p#p#e#ra en parall�le un script Supprimer. 'NOT NULL' sp_addtype nom_de_type.3648 et +214 748.�Optionnel. real� Donn�es num�riques de pr�cision en virgule flottante comprises entre -3. varchar cha�ne de caract�res de longueur variable d'un maximum de 8 000 caract�res.comprise entre -231 (-2 147 483 648) et 231 . (=># #n#o#m# #d#e# #l## a#�#r#o#p#o#r#t# #e#t# #d#e# #l#a# #v#i#l#l#e## # # # # # # # # # # # # # # # # # # #d#e#s#s#e#r#v#i#e# #d#a#n#s# #l#a# #t#a#b#l#e# #A#e#r#o#p#o#r#t#)### # ##J� � �A#v#e#c# . decimal� Donn�es num�riques fixes de pr�cision et d'�chelle comprises entre -1038 -1 et 1038 -1.htm"###image Donn�es binaires de longueur variable ne pouvant pas d�passer 231 .1 (2 147 483 647).varbinary Donn�es binaires de longueur variable ne pouvant pas d�passer 8 000 octets. money� Valeurs de donn�es mon�taires comprises entre -263 (-922 337 203 685 477. dans la table Vol) TypeNom�: cha�ne variable limit�e � 50 caract�res. datetime Donn�es de date et d'heure comprises entre le 1er janvier 1753 et le 31 d�cembre 9999.40E + 38 et 3. ###:� �E#x#e#r#c#i#c#e# #2#0#�###L#e#s# #e#x#e#r#c#i#c#e#s# #q#u#i# #s#u#i#v#e#n#t# #v#o#n#t# #v#o#u#s# #g#u#i#d#e#r# #p#o#u#r# #�#c#r#i#r#e# #u#n# #s#c#r#i#p#t# #d#e# #c#r#�#a#t#i#o#n# #d#e# #b#a#s#e# #d#e# #d#o#n#n#�#e#s#�#:# #C#r#e#e#r#. La syntaxe pour cr�er des nouveaux types ne fait pas partie de la norme ANSI du SQL.

ou par une contrainte CHECK avec une r�gle. choisir le nom du serveur dans la liste d�roulante.# #�#�#E#n#r#e#g#i#s#t#r#e#r# #u#n# #n#o#u#v#e#a#u# #s#e#r#v#e#u#r#�# #S#Q#L# #S#e#r#v#e#r#�# #p#o#u#r# #a#c#c#�#d#e#r# # #a#u# #s#e#r#v#e#u#r#�#:# # sans utiliser l�assistant. Une table temporaire globale est disponible pour toutes les connexions. .changer des valeurs ou effacer des enregistrements dans une table primaire qui engendrerait des enregistrements �orphelins� dans une table li�e. en validant les donn�es dans une table par rapport � une autre. Les tables temporaires locales sont supprim�es automatiquement � la fin de la session courante. et en v�rifiant que la mise � jour d'une base de donn�es est efficacement et correctement effectu�e pour chaque transaction. Une table temporaire locale est visible uniquement pour la connexion qui l'a cr��e. et le r�pertoire ��Types #d#e# #d#o#n#n#�#e#s# #u#t#i#l#i#s#a#t#e#u#r#s#�#�#. comme le montre l'illustration suivante:# Exemples de cr�ation de table�: CreateTableVous pouvez cr�er des tables permanentes ou des tables temporaires (locales ou globales).Une cl� �trang�re est une colonne ou une combinaison de colonnes dont les valeurs correspondent � la cl� primaire d'une autre table.On cr�e une cl� primaire gr�ce � la contrainte PRIMARY KEY lors de la cr�ation ou de la modification d�une table. et permet un acc�s rapide aux donn�es par la cl� primaire. d�finissez un type de donn�e pour chaque colonne. d�finissez des contraintes par l�option CHECK. D�velopper la base en cours de construction. Les tables temporaires globales sont supprim�es � la fin de la derni�re session qui les utiliseLorsque vous cr�ez une table. entrer votre nom de connexion et votre mot de passeFermer la fen�tre d�inscription du serveur. Int�grit� des donn�es dans une baseAssurer l'int�grit� des donn�es. SQL Server interdit de :ajouter des enregistrements � une table li�e lorsqu'il n'y a aucun enregistrement associ� dans la table primaire�. l'int�grit� r�f�rentielle est bas�e sur la relation entre la cl� �trang�re (id_titre) de la table ventes et la cl� primaire (id_titre) de la table titres.# #C#o#n#t#r#a#i#n#t#e#s# #d## i#n#t#�#g#r#i#t#�###&� �D#o#c#. mais ses valeurs doivent correspondre � des valeurs existantes de la cl� primaire. desc_emploi varchar(50) NOT NULL DEFAULT 'Nouveau poste'. il faut supprimer toutes les lignes de la table VOL qui font r�f�rence � ce pilote. pr�cisez si elles peuvent contenir des valeurs NULL. L'int�grit� r�f�rentielle garantit la relation entre une cl� primaire unique dans une table et les cl�s �trang�res qui y font r�f�rence dans les autres tables. Exemple�: avant de supprimer une ligne dans la table PILOTE.# #e#n# #l#i#g#n#e#�#:# #�#�#C#r#�#e#r# #e#t# #m#a#i#n#t#e#n#i#r# #d#e#s# #b#a#s#e#s# #d#e# #d#o#n#n#�#e#s#�#�#�#:# #�#�#T#a#b#l#e#s#�#�#### #C#l#�#s# #p#r#i#m#a#i#r#e#s# #e#t# #�#t#r#a#n#g#�#r#e#s# #L#a# #c#l#�# #p#r#i#m#a#i#r#e# #e#s#t# #u#n#e# #c#o#l#o#n#n#e# #o#u# #u#n#e# #c#o#m#b#i#n#a#i#s#o#n# #d#e# #c#o#l#o#n#nes dont les valeurs identifient de fa�on unique chaque ligne dans la table�: elle ne peut pas �tre nulle. avec les tables ventes et titres dans la base de donn�es pubs. en v�rifiant la valeur des champs l'un par rapport � l'autre. c�est pr�server la coh�rence et l'exactitude des donn�es stock�es dans une base de donn�es en validant le contenu des diff�rents champs.Par exemple.#E#n#t#e#r#p#r#i#s#e# #M#a#n#a#g#e#r# ##l#a#n#c#e#r# #l## o#u#t#i#l# #p#a#r# #l#e# #m#e#n#u# #�#�#S#Q#L# #S#e#r#v#e#r# #7#. choisir ��Utiliser l�authentification SQL� Server�. Pour assurer l�int�grit� r�f�rentielle. et d�velopper les objets de la base en cliquant sur le + � c�t� du nom du Serveur ( l�ic�ne avec fl�che verte) #D�velopper ��Bases de donn�es���: seules les bases de donn�es auxquelles vous avez acc�s apparaissent. 4 contraintes d�int�grit�: Int�grit� d�entit�: unicit� de la cl� primaire (PRIMARY KEY) ou d�autres cl�s (UNIQUE)Int�grit� de domaine�: plage des valeurs possibles pour une colonne. Elle n�est pas obligatoirement unique ni d�finie (peut �tre NULL). SQL cr�e automatiquement un objet ��index�� pour la cl� primaire�: l�index assure l�unicit� de la cl� primaire dans la table. On peut restreindre cette plage en attribuant � la colonne un type d�fini par l�utilisateur. niv_min tinyint NOT NULL CHECK (niv_min >= 10).#0#�#�##M#e#n#u# #�#�#A#c#t#i#o#n#�#�#. On cr�e une cl� �trang�re par la contrainte FOREIGN KEY lors de la cr�ation ou de la modification d�une table. nommez ses colonnes. des valeurs par d�faut par DEFAULT##CREATE TABLE emplois( id_emploi smallint PRIMARY KEY.# ## #C#r#�#a#t#i#o#n# #e#t# #s#u#p#p#r#e#s#s#i#o#n# #d#e# #t#a#b#l#e#s#.

niv_max tinyint NOT NULL CHECK (niv_max <= 250))# FOREIGN KEY�: la cl� fait r�f�rence � la cl� primaire d�une autre table. '0736'. id_emploi smallint NOT NULL DEFAULT 1 REFERENCES emplois(id_emploi)ou id_emploi smallint et plus loin FOREIGN KEY (id_emploi) REFERENCES emplois (id_emploi)UNIQUE�: assure l�unicit� d�une cl� secondairepseudonyme varchar(30) NULL UNIQUE DEFAULT�: valeur par d�faut lorqu�aucune valeur n�est donn�e dans INSERT ou UPDATECHECK�:CHECK (id_�diteur IN ('1389'. '0877'. Pour chaque table. par pas de 1. Exercice 23�: Script de destruction des types utilisateurs et des tablesPour d�truire une table�: DROP TABLE AVIONGOLe GO oblige le moteur � faire la suppression imm�diatement et permet de recr�er la table�( sinon erreur ��Il y a d�j� un objet Avion dans la base de donn�es�� )Attention�: il faut d�truire les tables dans l�ordre inverse de la cr�ation. V�rifier la cr�ation des tables sous Entreprise ManagerExercice 22�: Script de test�Tester les contraintes d�int�grit� en faisant des essais de remplissage par l�instruction INSERT et des suppressions par DELETE�: v�rifier les valeurs par d�faut. par pas de 1AEROPORT�: la cl� primaire IdAeroport ne comporte que des lettres la colonne NomVilleDesservie est optionnelle la colonne NomAeroport est obligatoireVOL�: la cl� primaire NumVol est constitu�e du pr�fixe "�IT" suivi de trois chiffresAFFECTATION�: la cl� primaire est compos�e des colonnes NumVol et DateVol la cl� �trang�re IdPilote peut �tre NULL (en attente d�affectation � un pilote)Commencer par �tablir la liste de d�pendance�: num�roter 0 les tables ind�pendantes. par pas de 1PILOTE�: la cl� primaire IdPilote est autoincr�ment�e � partir de 1.D�finitions de contraintes suppl�mentaires sur les tables�:AVION�: la cl� primaire NumAvion est autoincr�ment�e � partir de 100.# #1#3#. 2 celles qui d�pendent des pr�c�dentes�cr�er les tables en commen�ant par les ind�pendantes. les domaines de validit� des colonnes�Partir des valeurs d�crites dans le chapitre I. '1622'. d�crite dans le sch�ma g�n�ral. 1 les tables qui ne d�pendent que de tables ind�pendantes. avec un d�faut de 100CONSTRUCTEUR�: la cl� primaire IdConstructeur est autoincr�ment�e � partir de 1.#3#)# # # # # # #(#=#># #v#a#l#e#u#r#s#:# #1#0#. on d�finira les liens cl� �trang�re-cl� primaire en suivant le sch�ma.# #1#6#& )####:� �E#x#e#r#c#i#c#e# #2#1#�#:# # #C#r#�#a#t#i#o#n# #d#e#s# #t#a#b#l#e#s# #e#t# #d#e#s# #c#o#n#t#r#a#i#n#t#e#s###C#o#m#p#l#�#t#e#r# #l#e# #s#c#r#ipt de cr�ation pour cr�er les tables de la base ��Compagnie a�rienne��. en supprimant d�abord les t . en remplissant les tables dans l�ordre de la liste de d�pendance. '1756') OR id_�diteur LIKE '99[0-9][0-9]')#CHECK (niv_min >= 10)ou avec mot cl� CONSTRAINT�: CONSTRAINT CK_id_employ� CHECK (i#d#_#e#m#p#l#o#y#�# #L#I#K#E# #'#[#0#-#9#]#[#0#-#9#]#[#0##9#]#[#0#-#9#]#[#F#M#]#'# #)### #I#D#E#N#T#I#T#Y#�#:# #v#a#l#e#u#r# #n#u#m#�#r#i#q#u#e# #a#u#t#o#i#n#c#r#�#m#e#n#t#a#l#e# #(#v#a#l#e#u#r# #i#n#i#t#i#a#l#e# #e#t# #v#a#l#e#u#r# #d#e# #l## i#n#c#r#�#m#e#n#t#)# #I#D#E#N#T#I#T#Y#(#1#0#.TYPE�: la cl� primaire TypeAvion commence obligatoirement par une lettre la capacit� est comprise entre 50 et 400�: cette colonne est obligatoire. et en suivant l�ordre de la liste de d�pendance.