Vous êtes sur la page 1sur 4

Instruction de création

Instructions de création :

Toutes les opérations qui permettent de créer une base de données sont disponibles dans Management
Studio sous forme de boites de dialogue et de boutons. Mais on peut également les organiser dans un
code SQL.
1. Une base et son journal
Une base de données SQL Server contient au minimum :
– un fichier de données principal (d’extension .mdf) oứ sont stockées les données ;
– un journal des transactions (d’extension .ldf) oứ sont répertoriées toutes les transactions.
Lorsque l’on créé une base, il faut donc préciser le nom, l’emplacement et la taille de ces deux
fichiers.
Création d’une base de données avec l’interface graphique MSSMS :
Commençons par la création de la base« Test ».
Dans la fenêtre « Explorer », on clique avec le bouton droit de la souris sur « bases de
données » puis sur « nouvelle base de données »
Une nouvelle fenêtre s'ouvre, on saisit le nom de la base dans « nom de la base de données »
et on clique sur «Ok »
Création d’une base de données avec T_SQL:
Exemple : créons une base de données papeterie

CREATE DATABASE papeterie -- le nom de la base


ON PRIMARY -- le fichier de données principal
(
NAME = papeterie_data, -- nom logique
FILENAME = ’C:\Data\papeterie.mdf’, -- emplacement et nom du fichier
SIZE = 60MB, -- taille de départ
MAXSIZE = 70MB, -- taille maximale
FILEGROWTH = 1MB -- incrément
)
LOG ON -- le journal
(
NAME = papeterie_log,
FILENAME = ’D:\Log\papeterie.ldf’,
SIZE = 15MB,
MAXSIZE = 20MB,
FILEGROWTH = 1MB
)

Modification :
Pour modifier une base de données existante, on utilise l’instruction ALTER DATABASE.
Par exemple :
ALTER DATABASE papeterie
MODIFY NAME Magasin

1
Instruction de création

Remarque : d’autres modifications sont possibles.


Suppression :
Pour supprimer une base de données existante, il suffit de taper :
DROP DATABASE papeterie

2. Création de la table :
Lors de la création d’une table dans une base de données existante, il faut préciser :
– pour chaque colonne : son nom et son type de données ;
– une clé primaire (qui permet d’identifier chaque ligne de façon unique).
Syntaxe
La syntaxe générale pour créer une table est la suivante :
CREATE TABLE nom_de_la_table
(
    colonne1 type_donnees,
    colonne2 type_donnees,
    colonne3 type_donnees,
    colonne4 type_donnees
)

Exemple de création d’une table :


CREATE TABLE utilisateur
(
  id INT PRIMARY KEY NOT NULL,
    nom VARCHAR(20),
    prenom VARCHAR(20),
    email VARCHAR(30),
date_naissance DATETIME,
pays VARCHAR(30),
ville VARCHAR(30),
code_postal VARCHAR(5),
nombre_achat INT
)
Un autre exemple :
CREATE TABLE clients
(
clt_num CHAR(8) PRIMARY KEY, -- cle primaire
clt_nom VARCHAR(20) NOT NULL, -- vide interdit
clt_ca INT DEFAULT 0 -- valeur par defaut
)
Remarque :
On peut rendre la saisie d'une colonne obligatoire en apposant le mot clef NOT NULL
NULL représente une absence d’information
La contrainte DEFAULT permet de préciser une valeur qui sera automatiquement insérée en l'absence
de précision d'une valeur explicite dans un ordre d'insertion.
La contrainte d'unicité exige que toutes les valeurs explicites contenues dans la colonne soient uniques
au sein de la table :
CREATE TABLE T_PERSONNE
(PRS_NOM VARCHAR(30),
PRS_PRENOM VARCHAR(30),

2
Instruction de création

PRS_TELEPHONE CHAR(14) UNIQUE)

Modification d’une table


Pour modifier une table existante, on utilise l’instruction ALTER TABLE.
Exemples :
ALTER TABLE clients
ADD clt_adr VARCHAR(55) -- pour ajouter la colonne adresse

ALTER TABLE clients


DROP COLUMN clt_adr -- pour retirer la colonne adresse

ALTER TABLE clients


ALTER COLUMN clt_num INT -- pour reconvertir le type de donnees
Pour supprimer une table existante, il suffit de taper :
DROP TABLE clients

Numérotation automatique
Pour la clé primaire d’une table, il est souvent préférable de laisser SQL Server générer des valeurs
distinctes. On dispose pour cela de deux possibilités :
– une valeur entière qui s’incrémente automatiquement ;
– un identificateur unique universel (GUID), c’est-à-dire un nombre codé sur 16 octets en logique
polonaise inverse.
Nous nous contentons de la première alternative :
CREATE TABLE clients
(
clt_num INT PRIMARY KEY IDENTITY(4,2),
-- les numeros des clients successifs seront 4, 6, 8, ...
...
)
Remarque : l’avantage d’avoir un incrément > 1 est de pouvoir ensuite insérer des numéros parmi les
numéros automatiques (ce qui représente un intérêt limité, nous nous contentons donc bien souvent de
IDENTITY(1,1)).
A titre d’information, la seconde alternative s’emploie ainsi :
ALTER TABLE clients
ALTER COLUMN clt_num UNIQUEIDENTIFIER PRIMARY KEY DEFAULT NEWID ()

3
Instruction de création

3. Définir les relations :


La commande d’un produit est forcément passée par un client. Donc la table commandes devra
contenir une colonne pour savoir quel client est concerné. Cette colonne cmd clt contiendra en fait la
clé primaire du client concerné. Il y a donc une relation entre cmd clt et la colonne clt num de la table
clients. Comme cmd clt va chercher ses valeurs dans une autre colonne, elle constitue ce que l’on
appelle une clé étrangère.
Relation entre deux tables
La syntaxe pour créer la table commandes est alors :
CREATE TABLE commandes
(
cmd_num INT PRIMARY KEY IDENTITY(1,1),
cmd_date DATETIME DEFAULT GETDATE(),
-- GETDATE () retourne la date d’aujourd’hui et l’heure courante
Id_clt INT NOT NULL FOREIGN KEY REFERENCES clients(clt_num)
)
Remarque :
– id_clt et clt_num doivent être du même type ;
– on pourrait se contenter de REFERENCES clients car clt_num est clé primaire ;
– cette relation introduit deux contraintes :
 Lors d’une nouvelle commande, le client devra déjà exister ;
 Lors de la suppression d’un client, il ne devra plus faire l’objet de commande.

Vous aimerez peut-être aussi