Vous êtes sur la page 1sur 10

BTS DAKHLA DAHAR RACHID

Référence bibliographique

• Prof. Saliha yaakoub


Introduction
 La plupart des SGBDs relationnels offrent une extension du SQL, en y ajoutant des

déclarations de variables, des structures de contrôles (alternatives et les répétitives) pour

améliorer leurs performances

 Transact-SQL ou T-SQL ou TSQL est l’extension du langage SQL pour Microsoft SQL

Server et Sybase.

 Transact-SQL est un langage procédural permettant d’implémenter des fonctionnalités de

bases de données que SQL seul ne peut pas implémenter.


 Dans Transact SQL, on utilise le mot réservé Les variables
DECLARE pour déclarer des variables.
DECLARE
 Un seul DECLARE est suffisant si vos déclarations @CHOIX int ;
SET @CHOIX =1;
sont suivies par une virgule. La dernière variable DECLARE
@variable INT =12,
déclarée se termine par point virgule. @nom VARCHAR(30) ='Patoche',
@date DATE ='2020-08-21';
 Les noms de variables sont précédés du symbole @
PRINT @variable;
 Les types de variables, sont les types SQL PRINT @nom;
PRINT @date;
 Les variables peuvent être initialisées avec des

valeurs en utilisant la fonction SET


Les variables
USE grh

BEGIN
DECLARE
@salaire_min MONEY,
@nbr_emp int;
SELECT @salaire_min =MIN(sal),@nbr_emp = count(*) FROM emp;
PRINT concat('le nombre des employés est : ' , @nbr_emp);
PRINT concat('le salaire minimum est: ',@salaire_min) ;
END

Les mots réservés : BEGIN …END


Ces mots réservés permettent de définir un bloc ou un groupe d’instructions qui
doivent être exécutées. Un peu comme { } en C.
L’instruction IF…ELSE
DECLARE @Number INT;
IF Boolean_expression SET @Number = 50;
IF @Number > 100
{ sql_statement | statement_block } PRINT 'The number is
large.';
[ ELSE ELSE
BEGIN
{ sql_statement | statement_block } ] IF @Number < 10
PRINT 'The number is
small.';
ELSE
Question: augmenter le salaire des employés du
PRINT 'The number is
département 10 par 5% si la moyenne des salaires du medium.';
département dépasse 2500 , sinon par 10% END ;
L’instruction IF…ELSEif
IF Boolean_expression
DECLARE @Number INT;
SET @Number = 50;
{ sql_statement | statement_block }
IF @Number < 10
PRINT 'The number is
[ ELSE IF Boolean_expression
small.';
ELSE IF @Number < 100
{ sql_statement | statement_block } ]
PRINT 'The number is
medium.';
[ ELSE
ELSE
PRINT 'The number is
{ sql_statement | statement_block } ]
large.';
L’instruction CASE
--Simple CASE expression: --Searched CASE expression:

CASE input_expression CASE

WHEN when_expression THEN result_expression WHEN Boolean_expression THEN result_expression

[ ELSE else_result_expression ] [ ELSE else_result_expression ]

END END

UPDATE emp SET sal = SELECT ProductNumber, Category =


( CASE ProductLine
CASE WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN (sal < 25000 ) THEN sal + WHEN 'T' THEN 'Touring'
0.05*sal WHEN 'S' THEN 'Other sale items'
ELSE (sal + 0.01*sal) ELSE 'Not for sale'
END); END
FROM Product
WHILE Boolean_expression

{ sql_statement | statement_block | BREAK | CONTINUE } L’instruction while

BEGIN
WHILE (SELECT AVG (sal) FROM emp ) <= 150000
BEGIN
UPDATE emp SET sal = sal +1000;
IF (SELECT MAX (sal) FROM emp) > 500000
BREAK;
ELSE CONTINUE;
END;
END;
Le mot GO
 GO ne fait pas partie du SQL. C’est un mot réservé optionnel qui permet de finir un lot

d’instructions.

Exemple:

 vous ne pouvez pas mettre les fonctions et les procédures dans un même fichier, Si vous

finissez votre procédure ou votre fonction par GO dans ce cas, vous pouvez mettre vos

procédures et ou fonction dans un même fichier sans qu’il y soit des erreurs. Évidement ces

procédure s’exécutent séparément.

Vous aimerez peut-être aussi