Profitez des promotions incroyables de nos cours en pdf!! Ignorer
Transact-SQL est une extension de SQL vers un langage de programmation, il est utilisé par Microsoft SQL Server. Dans ce cours , on découvre les éléments de base du langage Transact Sql (ou dit aussi : Tsql) : variable, traitemenet conditionnel, traitement itératif….
Pour déclarer des variables, on peut utiliser l’une des méthodes suivnates :
Déclaration d’une variable par ligne :
Declare @nom_variable type
Déclaration multiple :
Declare @var1 type1, @var2 type2
Exemple:
Declare @maVariable int
Declare @x int, @y int, @z char
Attention :
Declare @x ,@y int est incorrecte
Pour donner une valeur à une variable, on peut utiliser select (aussi pour une affectation multiple) ou set (pour une seule variable).
Syntaxe générale :
Select @variable=Expression où
set @variable=Expression
Exemple 1: affectation d’une variable
select @i=3 ;
set @j=4 ;
select @str=’TSDI’
Exemple 2 : Affectation multiple
select @i=3,@j=4,@str=’TSDI’ ;
NB : set @i=3, @j=4, @str=’TSDI’ est une affectation incorrecte.
Pour afficher le contenu d’une variable on utilise la même instruction select.
Exemples : Select @i ;
Select @i,@j,@str // Affichage multiple
Remarque 1 : On peut utiliser select pour affecter une valeur ou bien pour afficher une autre, mais pas pour faire les deux, donc l’instruction select @i=20, @str est incorrecte.
Remarque 2 : Affichage avec print
On peut utiliser la commande print pour afficher un résultat sous format message. Syntaxe : Print ‘Chaine de caractère’
Dans l’analyseur de requêtte SQL on a deux sortie d’affichage Messages pour Print et Table pour Select
Exemple de variable de type table :
Declare @stg table (numInsc int primary key, nom varchar(20), moyenne float)
/*la particularité des variables de type table, est qu’on peut utiliser des commandes insert, select, update, delete */
insert into @stg values(103,’Jalimi’,12.2),(107,’ibrahimi’, 15.06)
insert into @stg values(200,’SOQRAT’,10.89)
Select * from @stg
Select avg(moyenne) from @stg
Les variables globales sont affectées directement par le serveur, elle retournent une seule valeur, elles sont utilisées pour communiquer une information au client, elle sont notées @@nom_variable
Exemples :
Variable globale | Rôle |
@@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 |
Le traitement conditionnel (ou dit aussi la structure alternative) est une structure de contrôle qui permet d’exécuter un de deux actions suivant une condition.
Syntaxe :
if(condition)
-instruction ou bloc d’instruction
else
-instruction ou bloc d’instruction
Avec :
– Chaque Bloc d’instructions commence par begin et se termine par end
– La partie « else » est optionnelle. Il est possible d’imbriquer des if.
Exemple :
Declare @stg table(numInsc int primary key, nom varchar(20))
insert into @stg values(103,’LAAROUSSI’,’SALAH’,14)
If not exists(select * from @stg ) Print ‘la table est vide’
Else Print ‘la table n”est pas vide’
L’instruction CASE, permet d’attribuer des valeurs en fonction d’une condition
Remarque : La fonction CASE est une expression Transact-SQL spéciale qui permet l’affichage d’une valeur de remplacement en fonction de la valeur d’une colonne. Ce changement est temporaire. Par conséquent, aucune modification permanente n’est apportée aux données.
Exemple : afficher le nom complet de la ville :
SELECT nom, CASE ville
WHEN ‘CA’ THEN ‘Casablanca’
WHEN ‘Kn’ THEN ‘Kenitra’
WHEN ‘RB’ THEN ‘Rabat’
END
FROM client ORDER BY nom ;
Exercice : soit la table stagiaire (numi, noms, prenoms,note)
Afficher le nom et le prenom de chaque stagiaire ainsi que leur mention selon la note : ‘eliminé’ ,’admis’, ou ‘redoublant’
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 |
Exemple : calcule de la factorielle d’un nombre
Declare @i int, @f int,@n int
select @n=6, @f=1, @i=1
while (@i<=@n)
begin
set @f=@f*@i
set @i=@i+1
end
select @f as “le factoriel”
Bravo! si vous avez arrivé ici, sans problème de compréhension, alors vous pouvez tester vos compétences acquits avec le TP :
Vous pouvez suivre la liste des vidéos du cours base de données (Merise + Sql + Transact sql) sur notre chaine youtube : Vidéos Bases de données.
La partie suivante du cours est : l’utilisation des Procédures Stockées