PROGRAMMATION EN TRANSACT-SQL | Le Langage Transact SQL | Exercices Corrigés Transact SQL
PROGRAMMATION EN TRANSACT-SQL
I- Eléments de base de Transact-Sql
1- Commentaire
-- : commentaire sur une seule ligne
/*commentaire
sur
Plusieurs lignes
*/
2- Bloc d'instructions
Begin
Instructions
End
Instructions
End
3- variables
a.
déclaration:
DECLARE @Variable type
Type: int, smallint, decimal, numeric, float, real, datetime, char, varchar, text, nvarchar…
DECLARE @Variable type
Type: int, smallint, decimal, numeric, float, real, datetime, char, varchar, text, nvarchar…
(voir photocopie (types de données)
b. Affectation
set @variable= valeur
set @variable= valeur
Exemple:
DECLARE @N int
set @N=10
set @N=@N+1
PRINT 'N=' + convert(VARCHAR,@N)
Résultat : N=11
PRINT : instruction d'affichage.
CONVERT( ) : Fonction de conversion de type.
Exercice:
Ecrire le code T-Sql qui
permet de permuter la valeur de 2 variables.
declare @N1 int, @N2 int, @Temp int
set @N1=10
set @N2=20
print 'Avant Permutatiion:'
print
'N1='+convert(varchar,@N1)+'
N2='+convert(varchar,@N2)
set @Temp=@N1; set @N1=@N2; set @N2=@Temp;
print 'Après Permutatiion:'
print
'N1='+convert(varchar,@N1)+'
N2='+convert(varchar,@N2)
Avant
Permutation:
N1=10 N2=20
Après
Permutation:
N1=20 N2=10
4- Traitement conditionnel
a- instruction if …. Else
If (condition)
Instruction(s) si la condition est varie;
Else
Instruction(s) si la condition est fausse;
Exemple:
déterminer le maximum et le minimum de 3 nombres.
DECLARE @N1 int, @N2 int, @N3 int,@Max int,@Min int
set @N1=10
set @N2=20
set @N3=5
if (@N1>@N2)
begin
set @Max=@N1;
set @Min=@N2;
end
else
begin
set @Max=@N2;
set @Min=@N1;
end
if @N3> @Max set @Max=@N3
if @N3< @Min set @Min=@N3
print 'Maximum=' + convert(varchar,@Max)
print 'Minimum=' + convert(varchar,@Min)
Maximum=20
Minimum=5
b- instruction Case
- Case simple
Syntaxe:
Set @Variable1 = Case @variable2
When Valeur1 Then
Résultat1;
When Valeur2 Then
Résultat2;
When Valeur3 Then
Résultat3;
….
Else Résultat n;
End
Ceci est
équivalent à
If(@variable2=valeur1)
Set @variable1=resultat1;
Else
If(@variable2=valeur2)
Set @variable1=resultat2;
Else
If(@variable2=valeur3)
Set @variable1=resultat3;
Else
Set @variable1=resultatn;
Exemple 1:
DECLARE @N int
DECLARE @R varchar(50)
set @N=3
set @R=case @N
when 0 then 'ZERO'
when 1 then 'UN'
when 2 then 'DEUX'
when 3 then 'TROIS'
when 4 then 'Quatre'
ELSE
'Nombre supérieur à 4 ou inférieur à 0'
End
print 'R='+@R
R=TROIS
Exemple 2:
select FILMCOD,FILMTIT,ORIGINE = case filmnat
when 'Mar' then 'Moroc'
else 'Etranger'
End
from Film
- Case Recherché
Variable1 = Case
When condition1 Then
Résultat1;
When condition2 Then
Résultat2;
When condition3 Then
Résultat3;
….
Else Résultat n;
End
Exemple 1:
select FILMCOD,FILMTIT,Type=case
when FLIMDU>=90 then 'Long Métrage'
when FLIMDU>=60 then 'Moyen Métrage'
Else 'Court Métrage'
End
from Film
Exemple 2:
Afficher la mention selon la moyenne de l'étudiant:
DECLARE @Moy float
DECLARe @mention varchar(20)
Set @Moy=15.25
Set @mention= case
when @moy>=16 then 'Tres bien'
when @moy>=14 then 'Bien'
when @moy>=12 then 'Assez
bien'
when @moy>=10 then 'Passable'
else 'Echec'
end
Print 'Moyenne: '+
convert(varchar,@moy)
Print 'Mension: '+@mention
Moyenne:
15.25
Mension:
Bien
Exercice :
Afficher la saison
en fonction du mois en supposant que :
Mois Saison
12,
1,2 Hiver
3,
4,5 Printemps
6,
7,8 Eté
9,
10,11 Automne
5- Traitement Répétitif
a- Boucle WHILE
WHILE (condition)
Begin
Instruction(s)
[Continue]
…
[Break]
…
End
b- Exemple: Ecrire le code T-Sql qui affiche:
Nombre Carré
0 0
1 1
2 4
3 9
. .
. .
10 100
DECLARE @i int
print 'Nombre' + char(9)
+'Carré'
set @i=0
while(@i<=10)
begin
print convert(varchar,@i)+
char(9) + convert(varchar,@i*@i)
set @i=@i+1
end
Exercice
Ecrire
....pour calculer N!
DECLARE @i int
DECLARE @N int
DECLARE @p varchar
set @N=3
set @i=@N
set @p=1
while(@i>=1)
begin
set @p = @p*@i
set @i=@i-1
end
print +@p
|
Exemple 2:
Que fait le
code Suivant ?
DECLARE @i int
set @i=0
while(@i<=255)
begin
print convert(char,@i) +
char(@i)
set @i=@i+1
end
il affiche
les code ASCII avec leurs caractères correspondants.
6- Fonctions prédéfinies en Transact
SQL
Exercices
Exercice 1:
Afficher la
date système sous le format:
Mardi 4 janvier 2011
Exercice 2:
Soit une chaîne
@ch='INFORMATIQUE'. Ecrire le code T_Sql qui affiche:
I
IN
INF
INFO
INFOR
INFORM
INFORMA
INFORMAT
INFORMATI
INFORMATIQ
INFORMATIQU
INFORMATIQUE
Exercice 3:
Ecrire le
code T_Sql qui affiche:
I
N
F
O
R
M
A
T
I
Q
U
E
Exercice 4:
Ecrire le
code T_Sql qui inverse une chaîne :
Ex:
Chaine :
INFORMATIQUE
Inverse :
EUQITAMROFNI
--version 1
DECLARE @ch varchar(60)
DECLARE @invch varchar(60)
declare @i int;
set @ch='INFORMATIQUE'
set @invch=''
set @i=len(@ch)
while (@i>0)
begin
set
@invch=@invch+substring(@ch,@i,1)
set @i=@i-1
end
print @invch
--version 2
DECLARE @ch varchar(60)
set @ch='INFORMATIQUE'
print reverse(@ch)
Article plus récent Article plus ancien