74
Chapitre 5 • Le langage SQL DML
Vous n’êtes pas sans "ignorer" (double négation)
• ¬ (¬ P) ≡ P
r5
Schtroumpf vert et vert Schtroumpf (commutativité)
• P ∨ Q ≡ Q ∨ P
r6
• P ∧ Q ≡ Q ∧ P
r7
Jules et Jim (associativité)
• (P ∨ Q) ∨ R ≡ P ∨ (Q ∨ R)
r8
• (P ∧ Q) ∧ R ≡ P ∧ (Q ∧ R)
r9
Les Restos du coeur (distributivité)
• P ∨ (Q ∧ R) ≡ (P ∨ Q) ∧ (P ∨ R)
r10
• P ∧ (Q ∨ R) ≡ (P ∧ Q) ∨ (P ∧ R)
r11
Purification ethnique (lois de de Morgan)
• ¬ (P ∧ Q) ≡ (¬ P) ∨ (¬ Q)
r12
• ¬ (P ∨ Q) ≡ (¬ P) ∧ (¬ Q)
r13
Ariel ou eau de Javel ? (éléments neutres et absorbants)
• P ∧ vrai ≡ P
r14
• P ∧ faux ≡ faux
r15
• P ∨ vrai ≡ vrai
r16
• P ∨ faux ≡ P
r17
Les Faussaires
L’implication (⇒), la disjonction exclusive (⊕) et l’équivalence (⇔) n’existent pas
en SQL, et doivent donc être remplacées par des expressions équivalentes.
• P ⇒ Q ≡ (¬ P) ∨ Q
r18
• P ⊕ Q ≡ (P ∧ ¬ Q) ∨ (¬ P ∧ Q)
r19
• P ⊕ Q ≡ (P ∨ Q) ∧ ¬ (P ∧ Q)
r20
• P ⇔ Q ≡ (P ∧ Q) ∨ ¬ (P ∨ Q)
r21
Ces tables et ces règles définissent la logique binaire (à deux valeurs, vrai et faux) ou
cartésienne ou encore du tiers exclu. Nous verrons plus tard que certains aspects du
langage SQL s’appuient également sur une logique ternaire, utilisant trois valeurs :
vrai, faux et inconnu (section 6.10). Les règles ci-dessus ne sont plus d’application
dans cette logique.
Appliquons ces règles à quelques exemples concrets, qu’on exprimera selon la
syntaxe SQL.
➤ La négation d’une condition complexe
Considérons d’abord les clients de Toulouse dont le compte est négatif. Les renseignements les concernant peuvent être obtenus par la condition composée :
LOCALITE = 'Toulouse' and COMPTE < 0
Chapitre 5 • Le langage SQL DML
Vous n’êtes pas sans "ignorer" (double négation)
• ¬ (¬ P) ≡ P
r5
Schtroumpf vert et vert Schtroumpf (commutativité)
• P ∨ Q ≡ Q ∨ P
r6
• P ∧ Q ≡ Q ∧ P
r7
Jules et Jim (associativité)
• (P ∨ Q) ∨ R ≡ P ∨ (Q ∨ R)
r8
• (P ∧ Q) ∧ R ≡ P ∧ (Q ∧ R)
r9
Les Restos du coeur (distributivité)
• P ∨ (Q ∧ R) ≡ (P ∨ Q) ∧ (P ∨ R)
r10
• P ∧ (Q ∨ R) ≡ (P ∧ Q) ∨ (P ∧ R)
r11
Purification ethnique (lois de de Morgan)
• ¬ (P ∧ Q) ≡ (¬ P) ∨ (¬ Q)
r12
• ¬ (P ∨ Q) ≡ (¬ P) ∧ (¬ Q)
r13
Ariel ou eau de Javel ? (éléments neutres et absorbants)
• P ∧ vrai ≡ P
r14
• P ∧ faux ≡ faux
r15
• P ∨ vrai ≡ vrai
r16
• P ∨ faux ≡ P
r17
Les Faussaires
L’implication (⇒), la disjonction exclusive (⊕) et l’équivalence (⇔) n’existent pas
en SQL, et doivent donc être remplacées par des expressions équivalentes.
• P ⇒ Q ≡ (¬ P) ∨ Q
r18
• P ⊕ Q ≡ (P ∧ ¬ Q) ∨ (¬ P ∧ Q)
r19
• P ⊕ Q ≡ (P ∨ Q) ∧ ¬ (P ∧ Q)
r20
• P ⇔ Q ≡ (P ∧ Q) ∨ ¬ (P ∨ Q)
r21
Ces tables et ces règles définissent la logique binaire (à deux valeurs, vrai et faux) ou
cartésienne ou encore du tiers exclu. Nous verrons plus tard que certains aspects du
langage SQL s’appuient également sur une logique ternaire, utilisant trois valeurs :
vrai, faux et inconnu (section 6.10). Les règles ci-dessus ne sont plus d’application
dans cette logique.
Appliquons ces règles à quelques exemples concrets, qu’on exprimera selon la
syntaxe SQL.
➤ La négation d’une condition complexe
Considérons d’abord les clients de Toulouse dont le compte est négatif. Les renseignements les concernant peuvent être obtenus par la condition composée :
LOCALITE = 'Toulouse' and COMPTE < 0
