Vous êtes sur la page 1sur 24

Cration et Gestion des

tables
Version 1.0

Grgory CASANOVA

Sommaire

Introduction ..................................................................................................................................... 3

Pr-requis ........................................................................................................................................ 4

Les tables ......................................................................................................................................... 5


3.1

3.1.1

Les types de donnes Sql Server ..................................................................................... 5

3.1.2

Cration dun type de donnes par lutilisateur ............................................................. 6

3.2

Avec du code T-SQL ......................................................................................................... 9

3.2.2

Avec SSMS ..................................................................................................................... 10

Les contraintes dintgrits ................................................................................................... 11

3.3.1

IDENTITY ........................................................................................................................ 11

3.3.2

PRIMARY KEY ................................................................................................................. 12

3.3.3

UNIQUE.......................................................................................................................... 14

3.3.4

REFERENCE .................................................................................................................... 15

3.3.5

DEFAULT ........................................................................................................................ 16

3.3.6

CHECK ............................................................................................................................ 16

3.4

Supprimer une table .............................................................................................................. 17

3.4.1

Avec SSMS ..................................................................................................................... 17

3.4.2

Avec du code T-SQL ....................................................................................................... 17

Manipulation de donnes dans une table..................................................................................... 19


4.1

Ajout ...................................................................................................................................... 19

4.1.1

Avec SSMS ..................................................................................................................... 19

4.1.2

Avec du code T-SQL ....................................................................................................... 20

4.2

Modification .......................................................................................................................... 21

4.2.1

Avec SSMS ..................................................................................................................... 21

4.2.2

Avec du code T-SQL ....................................................................................................... 21

4.3

Crer une table ........................................................................................................................ 9

3.2.1

3.3

Les types de donnes .............................................................................................................. 5

Retrait .................................................................................................................................... 22

4.3.1

Avec SSMS ..................................................................................................................... 22

4.3.2

Avec du code T-SQL ....................................................................................................... 22

Conclusion ..................................................................................................................................... 24

Dotnet France Association CASANOVA Grgory

1 Introduction
Les donnes ne peuvent pas tre stockes directement dans la base. Cest pourquoi une base de
donnes contient des sous ensembles, qui permettent de donnes une intgrit aux donnes quelle
stocke. Ces sous ensembles sont appels les tables. Les tables sont reconnues dans SQL Server par
leur nom. Ces mme sous ensemble, les tables, contiennent des sous ensembles, qui sont les
colonnes, et qui sont les vritables conteneurs des donnes. Cest grce aux colonnes que nous
allons pourvoir stocker des donnes, et sauvegarder lintgrit de nos donnes, en les rangeant, en
diffrenciant leur types, ou encore en posant directement des contraintes sur ces colonnes. Enfin,
une colonne est caractrise par deux lments : son nom et son typage, chose que nous allons voir
dans la partie qui suivra les pr-requis.

Dotnet France Association CASANOVA Grgory

2 Pr-requis
-

Maitriser lenvironnement de dveloppement SQL Server savoir SSMS (Chapitre 1).


Savoir Grer et configurer une base de donnes (Chapitre 2).

Dotnet France Association CASANOVA Grgory

3 Les tables
3.1 Les types de donnes
3.1.1

Les types de donnes Sql Server


Lune des forces de SQL Server, est sa diversit de types de donnes. Avec lvolution du
monde des entreprises et le besoin permanent de nouveaux types de donnes, dans la nouvelle
version de SQL Server (2008), Microsoft a implment des nouveaux types de donnes telles que les
donnes Gographiques, Gomtriques, ou encore des nouveaux formats de donnes Time. Nous
allons donc maintenant lister et expliquer tous les types de donnes contenus dans SQL Server 2008.
Char
Nchar
Varchar

Nvarchar

Int
Bigint
Smallint
Tinyint
Decimal/Numeric

Float
Real
Money
Smallmoney
Date
Datetime

Datetime2
Smalldatetime

Datetimeoffset

time
Hierarchyid

Geometry

Chaine de caractres de longueur fixe dun maximum de 8000 caractres.


Chaine de caractres Unicode, dun maximum de 4000 caractres.
Chaine de caractres de longueur variable. Il est possible de prciser la
valeur max, ce qui permet dentrer des longueurs de chaines de caractres
de 2^31 caractres.
Chaine de caractres Unicode, dun maximum de 4000 caractres. En
spcifiant max, le texte peut avoir une longueur maximum de 2^31
caractres.
Nombre entier compris entre -2^31 et 2^31-1.
Nombre entier compris entre -2^63 et 2^63.
Nombre entier compris entre -2^15 et 2^15-1.
Nombre positif compris entre 0 et 255.
Nom exact de prcision C (nombre entier) et D chiffres aprs la virgule tel
que : Decimal (entre 0 et 38, 2) =Un nombre (2 chiffres aprs la virgule).
Les valeurs supportes vont de -99999,999 99999,999.
Nom approch de N chiffres tel que pour Float(N), N vas de 1 53.
Identique Float(24).
Supporte les nombres montaires compris entre -922337203685477,5808
et 922337203685477,5807 donc des nombres sur 8 octets.
Supporte les nombres montaires compris entre -214748,3648 et
214748,3647 donc des nombres sur 4 octets.
Permet de stocker une donne de type date comprise entre le 01/01/0001
et le 31/12/9999 avec la prcision dune journe.
Permet de stocker une date et une heure sur 8 octets. Datetime a une
prcision accrue par rapport Smalldatetime (prcision de 3,33
millisecondes).
Il permet de stocker une donne de type date et heure comprise entre le
01/01/0001 et le 31/12/9999 avec une prcision de 100 nanosecondes.
Permet de stocker une date et une heure sur 4 octets. Les dates possibles
vont du 1er Janvier 1900 au 6 Juin 2079, avec une prcision la minute
prs.
Il permet de stocker une donne de type date et heure comprise entre le
01/01/0001 et le 31/12/9999 avec une prcision de 100 nanosecondes.
Les informations sont stockes au format UTC.
Permet de stocker des donnes positives infrieures 24 heures. La
prcision peu tre pousse jusqu 100 nano secondes.
Type de donnes propre Sql Server qui va nous permettre de modliser
une structure hirarchique dans une table relationnelle.
Permet de travailler avec des donnes comprises dans un plan en 2
dimension, par exemple sur un trajet trs court o on peu considrer que
Dotnet France Association CASANOVA Grgory

Geography

Uniqueidentifier
Binary
Varbinary
Bit
Xml
Table

Sqlvariant

la terre est plate.


Ce type de donnes en revanche, ne nous permet pas dassimiler la terre
comme tant plane. On pourra lutiliser pour travailler avec de grande
distance. Il stocke la longitude et la latitude.
Permet de crer un identificateur unique laide de la fonction NEWID().
Supporte des donnes binaires sur n octets (De 1 255).
Supporte des donnes binaires sur n octets (De 1 8000). Largument
Max, permet de rserver 231 octet au maximum.
Valeur entire Boolenne pouvant prendre la valeur 0, 1 ou NULL.
Permet de stocker des documents Xml au sain dune table dans une
colonne.
Type de donnes qui permet de renvoyer un ensemble de donnes en vue
dune utilisation future. Il est en particulier utilis pour la cration de
tables temporaires.
Permet de stocker nimporte quel type de donnes hors mis les types text,
ntext, timestamp et sql_variant. Sql_variant peu faire un taille maximale
de 8016 octets.

Les types de donnes text, ntext et images existent toujours pour la compatibilit des
anciennes versions, mais il est prfrable dutiliser les types varchar(max) et varbinary(max).
3.1.2

Cration dun type de donnes par lutilisateur


Il est possible pour lutilisateur, de crer ses propres types de donnes de deux manires, par
SSMS ou avec la commande CREATE TYPE.
3.1.2.1 Avec SSMS
Avec SQL Server Management Studio, il est possible de crer de nouveaux types de donnes
personnalises. Il vous suffit de dployer le nud de votre base de donnes dans lexplorateur
dobjet, puis le nud programmabilit, et enfin le nud Type. On remarque alors quil existe un sous
nud, qui se nomme types de donnes dfinis par lutilisateur . Il suffira alors ensuite dappliquer
un click droit sur celui-ci et de slectionner loption Nouveau type de donnes dfini par
lutilisateur (Figure 1.1.2.1.1). Une nouvelle fentre apparat (Figure 1.1.2.1.1). Il vous faudra
renseigner des indications telles que le nom, le schma ou encore le type de donnes support. Ds
que vous aurez cliqu sur la touche de validation, votre nouveau type de donnes sera prsent dans
votre explorateur dobjet.
Pour supprimer ce type personnalis, il vous suffit simplement de faire un click droit sur ce type dans
lexplorateur dobjet, et de choisir supprimer.

Dotnet France Association CASANOVA Grgory

7
Figure 1.1.2.1.1 :

Dotnet France Association CASANOVA Grgory

8
Figure 1.1.2.1.1 :

3.1.2.2 Avec CREATE TYPE


Avec du code T-SQL, la forme gnrale de cration de type personnalis est la suivante.
CREATE TYPE Nom_Type
FROM Type_existant NULL

Analysons le code.
CREATE TYPE Nom_Type

La commande CREATE TYPE est bien entendu, la commande qui va nous permettre dannoncer Sql
Server que nous allons crer un nouveau type de donnes. Il est donc ncessaire de renseigner la
suite le nom de ce nouveau type.
FROM Type_existant NULL

FROM annonce que nous allons utiliser un type existant pour dfinir notre propre type. Il est donc
ensuite ncessaire de renseigner le type de donnes existant que nous utiliserons et si oui ou non,
les valeurs NULL sont supportes.
Dotnet France Association CASANOVA Grgory

9
Pour supprimer un type personnalis de donnes, il suffit dutiliser linstruction DROP TYPE.
DROP TYPE NomSchema.Nom_Type

Aprs avoir excut le code, votre type de donnes sera supprim.

3.2 Crer une table


3.2.1

Avec du code T-SQL


Comme pour la plupart des actions dans SSMS, lajout de tables peut se faire avec du code ou
bien, avec linterface graphique. Dans un premier temps, nous allons utiliser du code T-SQL. Nous
verrons dans un prochain chapitre ce quest exactement du code T-SQL. Retenez pour le moment
que cest le langage de requtage de base de donnes sous SQL Server.
CREATE TABLE Client
([Id_Client] int IDENTITY(1,1) PRIMARY KEY,
[Nom_Client] varchar(50) NOT NULL,
[Prenom_Client] varchar(50) NOT NULL,
[Numero_Client] varchar(20) NOT NULL,
[Adresse_Client] varchar(50) NOT NULL,
[Mail_Client] varchar(50) UNIQUE NOT NULL);
GO

Dcomposons ce code pour lanalyser.


CREATE TABLE Client
([Id_Client] int IDENTITY(1,1) PRIMARY KEY,
[Nom_Client] varchar(50) NOT NULL,
[Prenom_Client] varchar(50) NOT NULL,
[Numero_Client] varchar(20) NOT NULL,
[Adresse_Client] varchar(50) NOT NULL,
[Mail_Client] varchar(50) UNIQUE NOT NULL);

Le mot cl CREATE TABLE va bien entendu nous permettre de crer une table dans la base de
donnes dans laquelle nous nous sommes rendus au pralable. Aprs ce mot cl, il est possible de
spcifier le schma de la table et le nom de la table spar par un point. Nous verrons plus tard, dans
la partie Administration de SQL Server, ce quest un schma de base. Pour le moment, retenez quil
est possible didentifier un objet de la base de donnes par le modle suivant :
NomBaseDeDonnes.NomSchma.NomObjet. Aprs cela, on placera entre parenthses les colonnes
que lon veut crer, caractrises par leur nom et le type de donnes quelles supportent. Il est aussi
ncessaire de spcifier, si la colonne en question supporte ou non la valeur NULL. Lorsque vous aurez
spcifi toutes ces caractristiques, vous pouvez compiler votre code en appuyant sur F5 ou en
cliquant sur la touche dexcution du code. Vous aurez un message de validation de votre requte.
Lors de la cration de la table, il est possible de crer les contraintes dintgrits, conformment
une base de donnes relationnelle qui sont les diffrents types de cls, mais aussi les contraintes
telles que UNIQUE, IDENTITY Nous expliquerons plus en dtail par la suite, ce quest rellement une
contrainte dintgrit. Pour ajouter ces contraintes lors de la cration de la table, il suffit de spcifier
la suite de la colonne voulue, le type de contrainte voulue, ainsi que son nom, et les arguments
ncessaires celle-ci.

Dotnet France Association CASANOVA Grgory

10
3.2.2

Avec SSMS
Avec SQL Server management studio, la tache est dautant plus facile, puisque lon utilise
linterface graphique. Dans votre explorateur dobjet, il vous suffit dtendre le nud de votre base
de donnes, deffectuer un click droit dur le nud table et de slectionner Nouvelle table .

Dotnet France Association CASANOVA Grgory

11
Une nouvelle fentre apparait alors comme ceci :

Vous aurez alors renseigner les informations ncessaires, savoir le nom de chaque colonne, avec
le type de donnes quelle supportera et si elle supporte les valeurs NULL ou non. Pour sauvegarder
votre table, il vous suffira deffectuer un click droit sur longlet de la fentre o vous vous trouvez et
de slectionner Sauvegarder . Donnez alors un nom votre table, et aprs rafraichissement de
lexplorateur dobjet, vous pourrez voir votre table dans le nud table de votre base de donnes.

3.3 Les contraintes dintgrits


Comme dit prcdemment, toute une gamme de contraintes existent pour assurer lintgrit des
donnes dans la base. Les contraintes sappliquent exclusivement aux colonnes des tables et
possdent des caractristiques propres.
3.3.1 IDENTITY
Ce type de contrainte peu tre affecte une colonne par table, de type numrique entier. Elle
permet dincrmenter les valeurs dune colonne, ligne aprs ligne. Par dfaut, la contrainte IDENTITY
part de 1, et a un pas dincrment de 1. Il est possible de changer la valeur de dpart et le pas
dincrment. Proposons un script qui cr une table, avec deux colonnes, une de type IDENTITY et
une avec un type char, et faisons plusieurs insertions dans cette table.

Dotnet France Association CASANOVA Grgory

12

--Cr la table avec la contrainte IDENTITY


CREATE TABLE MATABLE
(COLONNE1 NUMERIC(18,0) IDENTITY,
COLONNE2 char(10))
--Insertion multiple dans notre nouvelle table
INSERT INTO MATABLE
(COLONNE2)
VALUES
('Cours 1'),('Cours 2'),('Cours 3')

Remarquez que lorsque lon insre des lignes dans une table comportant une colonne IDENTITY,
nous navons pas besoin de prciser la colonne et la valeur quelle prend en argument, do son
intrt, dautomatiser la saisie des donnes. Vrifions maintenant le rsultat avec un simple SELECT :

On remarque bien que la colonne COLONNE1 cest peuple seule, grce la contrainte IDENTITY. Il
est bon de rappeler que nous navons droit qu une seule contrainte IDENTITY par table.
3.3.2 PRIMARY KEY
Cette contrainte permet de dfinir une cl primaire sur une ou plusieurs colonnes dune table. Il ne
peu y avoir quune seule cl primaire par table, et la ou les colonnes sur lesquelles elle est dfinie
doivent tre de type NOT NULL. Il est important de noter que lorsque nous crons une cl primaire,
un index unique est cr (nous verrons cette notions plus en dtail plus tard dans les chapitres), on
peu donc considrer que les actions disponibles sur les indexs sont aussi disponibles lors de la
cration dune cl primaire. Il y a trois faon dajouter un cl primaire : en la crant pendant la
dfinition de la table mme, en la crant aprs dfinition de la table ou bien par SSMS. Commenons
par la faon la plus simple, par SSMS.
-Avec SSMS, rien de plus simple qutablir une contrainte cl primaire sur une colonne dune
table. Il vous suffit de dployer dans lexplorateur dobjets tous les nuds qui mnent votre table,
comme ceci :

Dotnet France Association CASANOVA Grgory

13

Effectuez un click droit sur la table en question et slectionnez cration . Cette nouvelle fentre
apparat cot de votre explorateur dobjet :

Dotnet France Association CASANOVA Grgory

14
Pour ajouter la cl primaire, faites un click droit sur la colonne voulue et slectionnez dfinir en
tant que cl primaire . Pensez ensuite sauvegarder les changements de dfinition de table.
Lopration est identique pour supprimer la cl primaire.
-Pendant la dfinition de table, il vous suffit dajouter le code suivant la suite de la colonne
voulue :
CREATE TABLE MATABLE1
(COLONNE1 int CONSTRAINT PK_Nom_Contrainte PRIMARY KEY)

Le mot cl CONSTRAINT indique explicitement que nous allons dfinir une contrainte, la suite de
ce mot cl nous pouvons dfinir le nom unique de la contrainte. Cette dfinition nest pas ncessaire,
simplement, le nom est plus clair si on le dfinit sois mme. Si on ne le prcise pas, celui-ci est gnr
automatiquement, et est compos dune suite de caractres sans sens prcis. Enfin le mot cl
PRIMARY KEY indique que la contrainte est une cl primaire.
-Aprs dfinition de la table, admettons que nous avons cr une table avec le modle suivant :
CREATE TABLE MATABLE1
(COLONNE1 int)

Nous souhaitons alors ajouter une cl primaire sur la colonne COLONNE1. Cette opration est
possible grce linstruction DDL ALTER TABLE comme ceci :
ALTER TABLE MATABLE1
ADD CONSTRAINT PK_PRIMARY
PRIMARY KEY (COLONNE1)

Il est possible dajouter les options CLUSTERED ET NON CLUSTERED, suivant si nous voulons que
lindex de la cl primaire gnr automatiquement soit ordonn ou non.
3.3.3 UNIQUE
La contrainte UNIQUE comme son nom lindique, va nous permettre de prciser sur une colonne, si
les valeurs contenues dans celle-ci ne doivent pas tre dupliques dans plusieurs enregistrements.
De ce fait, il ne sera pas possible avec une contrainte unique davoir deux fois une mme valeur pour
une colonne donne. Enfin, contrairement une table possdant une cl primaire, une table peu
avoir plusieurs colonnes concernes par une contrainte UNIQUE. Lorsque une contrainte de ce type
est dfinit, lintgrit est gre par un index de type UNIQUE cr en simultan. La dfinition dune
contrainte UNIQUE est simple avec du code T-SQL, puisque cest de la mme manire que nous avons
cr notre cl primaire. Les deux faons (pendant ou aprs dfinition de la table) existent bien
entendu :

Dotnet France Association CASANOVA Grgory

15

--Pendant :
CREATE TABLE MATABLE1
(COLONNE1 int UNIQUE)
--Aprs :
CREATE TABLE MATABLE1
(COLONNE1 int)
ALTER TABLE MATABLE1
ADD CONSTRAINT Nom_Contrainte UNIQUE

Attention : Il est possible dajouter une valeur NULL dans une colonne concerne par une contrainte
unique et qui accepte les valeurs NULL, cependant, il nest pas conseill de pratiquer ceci.
Rappel : Lors de la cration dun contrainte PRIMARY KEY, la colonne est reconnue comme UNIQUE
et naccepte pas les valeurs NULL.
3.3.4 REFERENCE
La contrainte REFERENCE traduit la liaison qui existe entre une cl primaire et trangre de deux
tables. Il est conseill de crer ce genre de contrainte quaprs la cration de toutes les tables
impliques, sinon, lors de la compilation de votre script, des erreurs peuvent apparaitre. Cette
contrainte na pas de proprit particulire par dfaut, il faut les ajouter sois mme, voyons dans un
premier temps sa syntaxe. Nous prsenterons les deux mthodes (pendant et aprs cration des
tables) par souci dexhaustivit :
--Pendant :
CREATE TABLE MATABLE1
(COLONNE1 int PRIMARY KEY)
CREATE TABLE MATABLE2
(COLONNE1 int CONSTRAINT FOREIGN KEY COLONNE1
REFERENCE MATABLE1 [COLONNE1]
Options)
--Aprs :
ALTER TABLE MATABLE2
ADD CONSTRAINT FOREIGN KEY COLONNE1
REFERENCE MATABLE1 [COLONNE1]
Options)

Comme dit prcdemment, les deux choix sont possibles, seulement, lorsque les tables se multiplient
dans votre script, il est de plus en plus difficile de grer la cration de ces contraintes pendant la
cration mme des tables, puisque la table contenant la cl primaire doit exister avant celle
contenant al cl trangre. Il est dailleurs impossible de choisir cette option lorsquune table
contient une cl primaire et une ou plusieurs cls trangres. Le champ Options dans nos exemples
constitue lendroit mme ou nous pouvons dfinir les proprits de nos rfrences. Attardons nous
sur ces proprits possibles.
NO OPTION : Cest la valeur par dfaut dune contrainte REFERENCE. Elle permet dobtenir le mme
comportement que si nous navions rien prcis.
Dotnet France Association CASANOVA Grgory

16
ON DELETE CASCADE : Prcise que si une ligne contenant la cl primaire rfrence est supprime,
toute les lignes contenant une cl trangre rfrenc sur cette cl primaire seront supprimes, sous
rserve que la cl primaire et la ou les cls trangres possdent la mme valeur denregistrement.
ON UPDATE CASCADE : Permet de demander SQL Server de mettre jour toutes les cls trangres
rfrences sur une cl primaire, lorsque cette cl primaire est mise jour.
SET NULL : Lorsque la cl primaire rfrence dans une table est supprime, les cls trangres de
mme valeur sont mises NULL. Il faut ainsi faire attention bien accepter les valeurs NULL pour la
colonne spcifie.
SET DEFAULT : Lorsque la ligne correspondant la cl primaire rfrence dans la table est supprim,
les valeurs pour la cl trangre sont mise la valeur par dfaut dfinit sur la colonne en question.
3.3.5 DEFAULT
La contrainte DEFAULT est particulirement utile pour viter les valeurs NULL dans une table. Il faut
toutefois garder lesprit quune valeur par dfaut ne sera utilise que dans le cas o lutilisateur
nentre pas de valeur pour une colonne en particulier. Ce type de contrainte peu tre applique pour
toutes les colonnes mis part les colonnes de type timestamp et celles qui possde une contrainte
IDENTITY. Voici la syntaxe :
--Pendant :
CREATE TABLE MATABLE1
(COLONNE1 int DEFAULT Valeur)
--Aprs :
ALTER TABLE MATABLE2
ADD CONSTRAINT DEFAULT Valeur
FOR COLONNE1

Remarque : La dfinition des paramtres est toujours possible pendant ou aprs la cration des
tables concernes.
3.3.6 CHECK
Cette contrainte permet de vrifier, avant insertion ou mise jour des donnes contenues dans la
colonne en question, que les donnes insrer sont bien au format voulu, ou encore quune valeur
entre dans la colonne pour un enregistrement appartiendra un domaine de valeurs particulier.
Regardons maintenant la syntaxe de cette contrainte :
--Pendant :
CREATE TABLE MATABLE1
(COLONNE1 int CHECK (expression_booleenne))
--Aprs :
ALTER TABLE MATABLE2
ADD CONSTRAINT CHECK (expression_booleenne)

Dotnet France Association CASANOVA Grgory

17
Il est possible dajouter loption NOT FOR REPLICATION aprs le mot cl CHECK, afin de spcifier
quil faut empcher lapplication de la contrainte dans un cas de rplication.

3.4 Supprimer une table


3.4.1

Avec SSMS
Avec SSMS, il est simple de supprimer une table de votre base de donnes. Il vous suffit de
dployer votre base de donnes dans lexplorateur dobjet, deffectuer un click droit sur la table
choisie et de slectionner Supprimer . Une nouvelle fentre saffiche, il vous suffira de valider
votre choix pour que laction soit faite. (Figure 1.1.3.1)
Figure 1.3.1.1 :

3.4.2 Avec du code T-SQL


La structure de suppression de table avec du code T-SQL est la suivante.
USE Test
GO
DROP TABLE dbo.Client
GO

Analyse du code :
USE Test
GO

On indique que nous allons travailler dans la base de donnes Test.


DROP TABLE dbo.Client
GO

Dotnet France Association CASANOVA Grgory

18
On prcise alors que dans cette table Test, grce linstruction DROP TABLE, nous allons supprimer la
table Client dont le schma est dbo. Aprs avoir excut ce code, on peut remarquer que la table que
nous avons prcise aprs linstruction DROP TABLE nexiste plus.

Dotnet France Association CASANOVA Grgory

19

4 Manipulation de donnes dans une table


La manipulation des donnes et des objets dans SQL Server est toujours plus facile avec
linterface graphique. Cependant, avec de lexprience, on peu trouver une foule davantage au fait
de les manipuler avec du code T-SQL. Cest pour cela que nous allons prsenter les deux manires,
avec SSMS et avec du code T-SQL, pour ajouter, mettre jour, ou bien modifier des donnes dans
nos tables.

4.1 Ajout
4.1.1

Avec SSMS
Avec SSMS, linterface graphique nous permet encore une fois dajouter des donnes dans
notre table trs simplement. Il suffira juste de se rappeler des contraintes que nous nous somme
imposes lorsque nous avons choisis le type de donnes de chaque colonne. Pour ajouter des
donnes dans chacune des cases dune table de votre base de donnes, il vous suffira douvrir
lExplorateur dobjet dans SSMS, de dployer votre base de donnes afin de rendre visible la table
dans laquelle vous voulez ajouter des donnes, et enfin deffectuer un click droit sur cette mme
table et de slectionner Modifier les 200 premires lignes du haut . Une nouvelle sous fentre
saffiche alors dans SSMS (figure 2.2.1.1), qui va vous permettre dajouter des donnes dans chacune
des colonnes de votre table.
Figure 1.2.1.1

Dotnet France Association CASANOVA Grgory

20
4.1.2

Avec du code T-SQL


On pourra samuser taper le code entirement, mais il est ncessaire de rappeler quune
autre des forces majeure de SQL Server est le gain de temps et de productivit. Il existe des
structures de codes accessibles directement par linterface graphique, qui permettent dapprendre
facilement lorsque lon dbute, ou bien daller plus vite dans un souci de productivit accrue. Pour
gnrer ce code, il vous suffit de vous rendre sur votre table dans lexplorateur dobjet de SSMS,
deffectuer un click droit sur votre table, et de slectionner loption INSERT INTO dans le menu
Gnrer un script de la table en tant que . Une nouvelle fentre de requtes souvre alors, et nous
pouvons voir le code modle gnr par SSMS.
INSERT INTO dbo.Entrepos
(Nom_Entrepos)
VALUES
('Entrepos1')
GO

Dtaillons ce code.
INSERT INTO dbo.Entrepos

La commande INSERT INTO est la commande dinsertion de donnes dans une table. Il est
ncessaire dajouter la table de destination la suite de cette commande de la faon suivante :
Nom_BDD.Schema_Table.Nom_Table.
(Nom_Entrepos)

Par la suite, il faut prciser les colonnes de destination des valeurs que nous allons entrer. Il est
possible dattribuer la valeur NULL une colonne qui laccepte de deux manires.
La premire serait de ne pas ajouter le nom de la colonne dans la liste des colonnes de la table et de
ne pas ajouter de valeur dans la liste des valeurs.
La seconde serait de laisser le nom de la colonne dans la liste des colonnes mais de prciser que la
valeur est NULL.
VALUES
Le mot cl VALUES permet SSMS didentifier les lignes qui suivront comme tant des valeurs

insrer dans les colonnes et non pas comme des colonnes.


('Entrepos1')
GO

Il suffit alors ensuite de faire la liste des donnes ajouter dans lenregistrement. Il est important
dajouter que pour des types de donnes caractres, il est ncessaire de mettre les donnes entre
simple guillemets ( ). Les donnes doivent tre, comme prsentes dans le modle, donnes entre
des parenthses. Le mot cl GO la fin du lot.

Dotnet France Association CASANOVA Grgory

21

4.2 Modification
4.2.1

Avec SSMS
La modification de donnes avec linterface graphique se fait la base de la mme manire
que lajout de donnes. Simplement, nous sommes confront une contrainte, puisque si nous
avons plus de 200 enregistrements pour cette table, il ne sera pas possible de modifier la totalit de
nos donnes, de plus, on ne pourra modifier les donnes quune par une contrairement quavec la
mthode du code. Pour modifier des donnes dans chacune des cases dune table de votre base de
donnes, il vous suffira douvrir lExplorateur dobjet dans SSMS, de dployer votre base de donnes
afin de rendre visible la table dans laquelle vous voulez modifier des donnes, et enfin deffectuer un
click droit sur cette mme table et de slectionner Modifier les 200 premires lignes du haut . Il
vous est alors possible de modifier nimporte quelle valeur, de nimporte quelle ligne, de nimporte
quelle colonne de votre table, du moment que la nouvelle valeur respectera les contraintes de type
de donnes que vous aurez donn cette colonne, ou encore que vous nayez pas mis une valeur
NULL dans une colonne qui ne les supportent pas.
4.2.2

Avec du code T-SQL


Pour la modification des donnes avec du code, nous allons aussi oprer de la mme manire
que pour ajouter des donnes dans notre table. Nous allons gnrer ce code grce SSMS au lieu de
le taper la main. Pour cela, droulez votre base de donnes dans lexplorateur dobjet. Effectuez un
click droit sur la table dans laquelle vous voulez mettre jour vos donnes, et slectionnez UPDATE
TO dans le menu, Gnrer un script de la table en tant que . Une nouvelle fentre de SSMS
apparait alors, et elle vous prsente le code de mise jour de donnes dans une table donne. Voici
le code obtenu :
UPDATE [Entreprise].[dbo].[Client]
SET [Nom_Client] = <Nom_Client, varchar(50),>
,[Prenom_Client] = <Prenom_Client, varchar(50),>
,[Numero_Client] = <Numero_Client, varchar(20),>
,[Adresse_Client] = <Adresse_Client, varchar(50),>
,[Mail_Client] = <Mail_Client, varchar(50),>
WHERE <Conditions de recherche,,>
GO

Analysons-le en dtail.
UPDATE [Entreprise].[dbo].[Client]
UPDATE est la commande de mise jour de donnes de table. Il est ncessaire de spcifier la table

de destination dans le format suivant : Nom_BDD.Schema_Table.Nom_Table. Cette ligne de code


indique que nous allons mettre jour la table indique.
SET [Nom_Client] = <Nom_Client, varchar(50),>
,[Prenom_Client] = <Prenom_Client, varchar(50),>
,[Numero_Client] = <Numero_Client, varchar(20),>
,[Adresse_Client] = <Adresse_Client, varchar(50),>
,[Mail_Client] = <Mail_Client, varchar(50),>
SET indique que nous allons spcifier en suivant, les colonnes dans lesquelles nous allons modifier

les donnes. Vous pouvez de ce fait, ne choisir de mettre jour que les colonnes que vous voulez.

Dotnet France Association CASANOVA Grgory

22

WHERE <Conditions de recherche,,>


GO

La commande WHERE indiquera les conditions dans lesquelles la mise jour seffectuera. On peut par
exemple, choisir de modifier seulement les clients dont lId est gal 6. Linstruction GO indique
SQL Server que le lot est termin.

4.3 Retrait
4.3.1

Avec SSMS
Tout comme pour lajout et la modification de donnes, on peut supprimer des
enregistrements grce linterface graphique. La mthode est toujours la mme, pour supprimer
des donnes dans une table de votre base de donnes, il vous suffira douvrir lExplorateur dobjet
dans SSMS, de dployer votre base de donnes afin de rendre visible la table dans laquelle vous
voulez modifier des donnes, et enfin deffectuer un click droit sur cette mme table et de
slectionner Modifier les 200 premires lignes du haut . Une nouvelle fentre apparait encore une
fois, et vous pouvez choisir, grce un click droit, de supprimer une ligne de votre table.
4.3.2

Avec du code T-SQL


Nous allons encore une fois gnrer le code grce SSMS. Droulez le nud de votre base
de donnes dans lexplorateur dobjet. Effectuez un click droit sur la table choisie, et slectionnez
loption DELETE TO dans le menu Gnrer un script de la table en tant que . Le code suivant
apparait :
DELETE FROM [Entreprise].[dbo].[Client]
WHERE <Conditions de recherche,,>
GO

Analysons ce code :
DELETE FROM [Entreprise].[dbo].[Client]

Linstruction DELETE FROM indique que nous allons supprimer une ligne ou plusieurs lignes dans la
table indique la suite de cette instruction.
WHERE <Conditions de recherche,,>
GO

La condition WHERE indiquera alors simplement dans quels cas on supprimera les lignes de notre
table. On pourra par exemple supprimer tous les clients donc lId sera suprieur 250. Linstruction
GO indique que laction est termine.
Dans le cas o lon voudrait supprimer toutes les donnes dune table, il existe une commande bien
plus rapide que DELETE FROM. Cette commande est la commande TRUNCATE TABLE.
TRUNCATE TABLE Schema.Nom_table

Avec la commande TRUNCATE TABLE, on indique SQL Server quon va supprimer toutes les
donnes contenues dans une table. On doit positionner en argument le schma et le nom de la table.
Aprs avoir excut ce code, votre table ne contiendra aucune donne. Lavantage de TRUNCATE

Dotnet France Association CASANOVA Grgory

23
TABLE est que son excution est bien plus rapide que de supprimer les donnes avec simple DELETE
FROM.

Dotnet France Association CASANOVA Grgory

24

5 Conclusion
Dans ce chapitre, nous avons vu essentiellement comment utiliser au mieux les tables, comment
les crer, les supprimer ou bien les mettre jour. Nous avons aussi appris mettre en place des
contraintes sur des sous ensemble de ces tables, nomms des colonnes, afin de garder lintgrit des
donnes contenues dans nos tables et par extension, dans notre base de donnes. Les morceaux de
code que nous avons pu excuter ici font parti dun langage nomm le T-SQL (Transact SQL), que
nous allons dvelopper dans le chapitre suivant.

Dotnet France Association CASANOVA Grgory

Vous aimerez peut-être aussi