Vous êtes sur la page 1sur 31

LANGAGE DE DÉFINITION

DE DONNÉE(LDD)
CHCHAB MOHAMED
INTRODUCTION

• LDD est le sous-ensemble du langage SQL


permet de :
Créer des tables
Décrire les différents types de données
Modifier la définition des tables
Supprimer, renommer et tronquer une table
CRÉATION D’UNE BASE DE DONNÉES

Syntaxe :
Use Master
Go
CREATE DATABASE Test
ON PRIMARY
( NAME = ‘Test',
FILENAME = 'C:\Program Files\Microsoft SQL
Server\MSSQL.1\MSSQL\DATA\Test.mdf',
SIZE = 3072KB ,
MAXSIZE = 20Mb,
FILEGROWTH = 1024KB )
LOG ON
( NAME = ' Test_log',
FILENAME = 'C:\Program Files\Microsoft SQL
Server\MSSQL.1\MSSQL\DATA\Test_log.ldf' ,
SIZE = 1024KB ,
MAXSIZE = 10Mb,
FILEGROWTH = 10%)
GO
CRÉATION DES TABLES
• Syntaxe :
CREATE TABLE table
(
column1 datatype [DEFAULT expr],
column2 datatype,
...)
Exemple :
Use Teste;
Go;
CREATE TABLE Etudiant
(
num_etud int,
nom_auditeur varchar(30)
);
Go;
• Expression colonne calculée
Expression définissant la valeur d'une colonne calculée
• Syntaxe:
(Column1 as (Formule avec d’autre colonne))
• Exemple :
Total as (qte * prix)
MODIFICATION DES TABLES
Syntaxe de base

ALTER TABLE nom_table instruction

Ajouter une colonne


ALTER TABLE nom_table
ADD nom_colonne type_donnees
Exemple
ALTER TABLE Client
ADD Nom VARCHAR(255)

Supprimer une colonne


ALTER TABLE nom_table
DROP column nom_colonne
Modifier une colonne
ALTER TABLE nom_table
ALTER COLUMN nom_colonne type_donnees

Renommer une colonne

Vous devez utiliser la fonction sp_rename. Cette fonction est


utilisée pour modifier le nom d'un objet créé par l'utilisateur (table,
colonne, procédure...). 
EXEC sp_RENAME 'nomDeLaTable.ancienNomDeLaColonne' ,
'nouveauNomDeLaColonne', 'COLUMN'
SUPPRESSION D’UNE TABLE
Syntaxe :

DROP TABLE nom_table

Exemple :
DROP TABLE Client
GESTION DES CONTRAINTES
D’INTÉGRITÉ

• On fait appel à des contraintes pour empêcher l'entrée de données


incorrectes dans des tables.
• On utilise des contraintes pour :
 Appliquer des règles au niveau d'une table chaque fois qu'une
ligne est insérée, mise à jour ou supprimée dans cette table. La
contrainte doit être satisfaite pour que l'opération réussisse.
 Empêcher la suppression d'un enregistrement si il y a une
dépendance avec un autre enregistrement de la table en relation.
 Éviter la suppression d'une table dont dépend une autre table.
 Appliquer des règles aux valeurs insérées dans une colonne pour
vérifier qu’elles sont conformes aux règles définies
CONTRAINTE DE COLONNE

• Spécifie un ensemble de valeurs pour une colonne


• Détermine si les valeurs nulles sont autorisées
• Contrôle de validité
 DEFAULT
• Spécifie la valeur fournie pour la colonne lorsque vous n'avez pas spécifié de valeur
lors d'une insertion.
• Exemple :
Age int default 20
 NOT NULL
• Mots clés déterminant si les valeurs NULL sont permises ou non dans une colonne.
 IDENTITY (propriété)
• Crée une colonne d'identité dans une table.
• Exemple :
code int IDENTITY(1,1)
 La Contrainte PRIMARY KEY
• Une contrainte PRIMARY KEY crée une clé primaire pour la table. Exemple :
code int PRIMARY KEY
 La Contrainte de Clé UNIQUE
• Une contrainte d'intégrité de type clé UNIQUE exige que chaque valeur dans une
colonne ou dans un ensemble de colonnes soit unique
• Exemple :
code int UNIQUE
 La Contrainte FOREIGN KEY
• La contrainte de clé étrangère ,
• Exemple :
code_type int FOREIGN KEY REFERENCES Type_client(code_type)
 La Contrainte CHECK
• Une contrainte CHECK est une contraint de validité
• Exemple :
Age int check (age>0)
Ville varchar(50) check (ville in (‘casablanca’,’bengeurir’,’Agadir’)
CONTRAINTE DE TABLE(DOMAINE)

• Contrainte d'intégrité incluse dans la définition de la table


Syntaxe :
• CONSTRAINT nom_contrainte type de contrainte ;
Exemple
• CONSTRAINT st_id_pk PRIMARY KEY (id));
• CONSTRAINT st_id_fk FOREIGN KEY(code_client)
REFERENCES Client(code_client)
• Pour ajouter une contrainte a une table existante
Syntaxe :
Alter Table T1
ADD CONSTRAINT nom_contrainte Type_contrainte
• Pour Supprimer une contrainte
Syntaxe :
Alter Table T1
Drop CONSTRAINT nom_contrainte
• Pour modifier une contrainte   vous devez d'abord supprimer la
contrainte existante, puis la recréer avec la nouvelle
définition. 
Syntaxe :
Alter Table T1
Drop CONSTRAINT nom_contrainte
Alter Table T1
ADD CONSTRAINT nom_contrainte
LES INDEXES

• À l'instar de l'index d'un livre, l'index d'une base de


données vous permet de retrouver rapidement des
informations dans une table ou une vue indexée.
• Syntaxe :

Create index Ind_Nom


On Auditeur(Nom)
Go
• Pour vérifier l’existence d’un index
if exists (select name from sys.indexes where name
like 'Ind_Nom')
Drop index Ind_Nom on Auditeur
Go

Create index Ind_Nom


On Auditeur(Nom)
Go
LES VUES

• Définition :
• Une vue est une table virtuelle dont la définition
s’appuie sur des tables ou d’autres vues. Elle affiche
des données qui ne lui sont pas propres, mais c’est
comme une fenêtre par laquelle il est possible de
visualiser ou de modifier des données venant des
tables
LES VUES

• Syntaxe :
• Création d'une Vue
CREATE VIEW view_name
AS select_statement
[ WITH CHECK OPTION ] [ ; ]
• WITH CHECK OPTION.
Cette option impose que toutes les instructions de modification de données exécutées sur la vue
respectent le critère défini dans select_statement.
• Modifier une vue : Alter
ALTER VIEW view_name
AS select_statement
[ WITH CHECK OPTION ] [ ; ]
• Suppression d'une Vue
L'ordre DROP VIEW view_name : permet de supprimer une vue. La suppression d'une vue n'a
aucun effet sur les tables sur lesquelles la vue est basée.
DÉCLARATION ET
AFFECTATION DES VARIABLES
• Déclaration des variables locales
Syntaxe générale : Declare @nom_variable type
Le caractère @ est obligatoire
-Exemple : Declare @maVariable int
- Déclaration multiple :
- Declare @var1 type1, @var2 type2
- Exemple :Declare @x int, @y int, @z char
- NB : Declare @x ,@y int est incorrecte
Affectation
Syntaxe générale : Select @variable=Expression où set
@variable=Expression
-Exemple :select @i=3
-set @j=4
-select @str='TSDI'
-Affectation multiple
-select @i=3,@j=4,@str='TSDI' est correcte
-Mais set @i=3, @j=4, @str='TSDI' est une affectation
incorrecte.
-Affichage

Affichage multiple : Select @i,@j,@str


Affichage avec print : Print ‘Chaine de caractère’
LES VARIABLES GLOBALES
• Les variables globales sont affectées directement par le
serveur, elle retournent une seul valeur,elle sont utilisées pour
communiquer une information au client, elle sont notées
@@nom_variable
• Exemple :
• @@error :indique le type d’erreur survenu lors de la dernière
instruction.
• @@rowcount : indique le nombre de lignes affectées par la
dernière instruction.
• @@identity : indique la valeur affecté à un attribut avec la
propriété identity
STRUCTURE ALTERNATIVE

• Syntaxe :
If(condition)
-instruction ou bloc d’instruction
else
-instruction ou bloc d’instruction

NB : la partie « else » est optionnelle. Il est possible d’imbriquer


des if.
STRUCTURE ITÉRATIVE

• Structure Itérative
La structure itérative est une structure qui permet d’exécuter
un même traitement plusieurs fois.
• Syntaxe générale :
While(condition)
-instruction ou bloc d’instructions

Etiquette : -instruction ou bloc d’instructions
goto etiquette
PROCÉDURES STOCKÉES
• Syntaxe
CREATE PROC[EDURE] procedure_name @parameter
data_type
AS sql_statement [ ...n ]
FONCTIONS
• CREATE FUNCTION [ schema_name.] function_name
( [ { @parameter_name [ AS ][ type_schema_name. ]
parameter_data_type [=default]} [ ,.....n ] ] )
• Scalar Functions (retourne une valeur)
RETURNS return_data_type
[ AS ]
BEGIN function_body
RETURN scalar_expression
END[ ; ]
• Inline Table-valued Functions (retourne une table online)
RETURNS TABLE
[ AS ]
RETURN [ ( ] select_stmt [ ) ] [ ; ]
FONCTIONS
• Multistatement Table-valued Functions (retourne une table
on multi -instruction)
RETURNS @return_variable TABLE < table_type_definition >
[ AS ]
BEGIN
function_body
RETURN
END
[;]
Pour la Suppression : Drop Function F
et la Modification :, Alter Function F
TRIGGERS (DÉCLENCHEURS)

• Un triggers est une Forme évoluée de règles utilisées pour


renforcer l’intégrité de la base de données
• Principe de fonctionnement
Deux tables virtuelles(variable local temporaire dans le programme)
sont créées au moment de la MAJ des données sur une table
(INSERTED, DELETED) en lecture seul, Elles sont destinées à
contenir les lignes de la table sur lesquelles ont été effectuées des
opérations.
Les tables INSERTED et DELETED peuvent être utilisées par le
trigger pour déterminer comment le traitement doit se dérouler. Ce
traitement est à écrire par le développeur

. Cas de suppression d’une ligne de table (Delete) : La/les lignes


supprimées sont placées dans la table temporaire DELETED et
supprimées de la table réelle;

Cas de création d’une ligne de table (Insert) : La/les lignes


nouvelles sont placées dans la table temporaire INSERTED et dans la
table réelle;
Cas de modification d’une ligne de table (Update) : La/les lignes
avant modification sont placées dans la table temporaire DELETED
et la/les lignes après modification sont placées dans la table
temporaire INSERTED et dans la table réelle.
TRIGGERS (DÉCLENCHEURS)

• Principe de fonctionnement.
• INSTEAD OF (au lieu de): Les déclencheurs INSTEAD OF peuvent être définis
sur des tables ou des vues; remplace le traitement de l’action (Insert, Delete ou
Update), en peut avant l’action, est utilisé comme suit:
• Cas de suppression (Delete) : La/les lignes supprimées sont placées dans la table
temporaire DELETED et non supprimées de la table réelle;
• Cas de création d’une (Insert) : La/les lignes nouvelles sont placées dans la table
temporaire INSERTED et non dans la table réelle;
• Cas de modification d’une ligne de table (Update) : La/les lignes avant
modification sont placées dans la table temporaire DELETED et reste dans la table
réelle, et la/les lignes après modification sont placées dans la table temporaire
INSERTED et non dans la table réelle.
TRIGGERS (DÉCLENCHEURS)

• Syntaxe :
CREATE TRIGGER nom_trigger ON nom_table FOR INSERT
AS bloc d’instruction SQL

CREATE TRIGGER nom_trigger ON nom_table FOR UPDATE


AS bloc d’instruction SQL

CREATE TRIGGER nom_trigger ON nom_table FOR DELETE


AS bloc d’instruction SQL
CREATE TRIGGER nom_trigger ON nom_table FOR
INSERT, UPDATE
AS bloc d’instruction SQL

Suppression d’un triggers : DROP TRIGGER nom_trigger

Modifier un triggers : la même syntaxe de Create, en


remplassant Create par Alter

Vous aimerez peut-être aussi