76
Chapitre 5 • Le langage SQL DML
Recherchons par exemple les clients qui n’ont pas de catégorie ou dont le compte est
négatif (mais pas les deux) peut s’écrire :
where ((CAT is null) and (COMPTE >= 0))
or
((CAT is not null) and (COMPTE < 0))
ou encore, selon la règle r20 :
where ((CAT is null) or (COMPTE < 0))
and
not ((CAT is null) and (COMPTE < 0))
➤ L’opérateur d’équivalence
L’équivalence (P ⇔ Q) correspond à une double implication :(P ⇒ Q)∧(Q ⇒ P).
Cet opérateur renvoie vrai lorsque P et Q ont même valeur, soit, selon la règle r21 :
P ⇔ Q ≡ (Q and P) or not (P or Q)
Recherchons les clients qui, si leur compte est négatif, ont une catégorie du type
’Bx’, et inversement, s’ils ont une telle catégorie, alors leur compte est négatif.
Ceux qui vérifient les deux conditions, ou qui n’en vérifient aucune, sont sélectionnés. En revanche, ceux qui ne vérifient qu’une seule de ces conditions sont
écartés. On écrira :
where ((COMPTE < 0) and (CAT like ’B_’))
or
not ((COMPTE < 0) or (CAT like ’B_’))
ou encore, selon la règle r13 :
where ((COMPTE < 0) and (CAT like ’B_’))
or
((COMPTE >= 0) and (CAT not like ’B_’))
5.2.7 Données extraites et données dérivées
Les données extraites jusqu’à présent proviennent directement de la base de
données. La clause select peut cependant spécifier des données dérivées, ou même
des constantes :
select 'TVA de ', NPRO, ' = ',0.21*PRIX*QSTOCK
from
PRODUIT
where QSTOCK > 500
Cette requête produit un tableau des montants TVA des articles en stock dont la
quantité restante est supérieure à 500 unités.
Chapitre 5 • Le langage SQL DML
Recherchons par exemple les clients qui n’ont pas de catégorie ou dont le compte est
négatif (mais pas les deux) peut s’écrire :
where ((CAT is null) and (COMPTE >= 0))
or
((CAT is not null) and (COMPTE < 0))
ou encore, selon la règle r20 :
where ((CAT is null) or (COMPTE < 0))
and
not ((CAT is null) and (COMPTE < 0))
➤ L’opérateur d’équivalence
L’équivalence (P ⇔ Q) correspond à une double implication :(P ⇒ Q)∧(Q ⇒ P).
Cet opérateur renvoie vrai lorsque P et Q ont même valeur, soit, selon la règle r21 :
P ⇔ Q ≡ (Q and P) or not (P or Q)
Recherchons les clients qui, si leur compte est négatif, ont une catégorie du type
’Bx’, et inversement, s’ils ont une telle catégorie, alors leur compte est négatif.
Ceux qui vérifient les deux conditions, ou qui n’en vérifient aucune, sont sélectionnés. En revanche, ceux qui ne vérifient qu’une seule de ces conditions sont
écartés. On écrira :
where ((COMPTE < 0) and (CAT like ’B_’))
or
not ((COMPTE < 0) or (CAT like ’B_’))
ou encore, selon la règle r13 :
where ((COMPTE < 0) and (CAT like ’B_’))
or
((COMPTE >= 0) and (CAT not like ’B_’))
5.2.7 Données extraites et données dérivées
Les données extraites jusqu’à présent proviennent directement de la base de
données. La clause select peut cependant spécifier des données dérivées, ou même
des constantes :
select 'TVA de ', NPRO, ' = ',0.21*PRIX*QSTOCK
from
PRODUIT
where QSTOCK > 500
Cette requête produit un tableau des montants TVA des articles en stock dont la
quantité restante est supérieure à 500 unités.
