1.4. Espressioni logiche - Digilander

1.4.
Espressioni logiche
1.4.1. Espressioni ed operatori logici
Allorché si vogliano programmare attività condizionate al verificarsi o meno di determinate
condizioni, si opera con le cosiddette espressioni logiche o predicati. Queste esprimono condizioni
che possono assumere il valore vero o falso, come ad esempio X > 0, e condizionare un'attività, ad
esempio (supposto che X sia il nome di un campo):
•
•
accetta il dato solo se è X > 0;
seleziona i record per i quali è X > 0.
Nell'ambito dei database, espressioni logiche si usano proprio nel contesto dei due esempi di
cui sopra (vedi in seguito):
•
•
per il controllo di validità dei dati da immettere nei campi;
per la seleziona di record di una tabella o, più in generale, per le operazioni di query nel
database.
Diversi ed anche sofisticati sono gli operatori e le operazioni logiche alla base della costruzione
di espressioni logiche (">" è stato solo un esempio introduttivo). In figura se ne presenta una sintesi
e nel seguito di questa unità didattica se ne chiariscono i significati.
Operatori di confronto
Operatore
<
<=
>
>=
=
<>
Between
A and B
Significato
minore di
minore di o uguale a
maggiore di
maggiore di o uguale a
uguale a
diverso da
Compreso
fra A e B (inclusi)
Valore uguale
IN (x, y,…)
ad uno degli elementi delle lista
Operatori logici
Operatore
X and Y
X or Y
not X
Significato
vero se sono veri sia X che Y
falso se X oppure Y sono falsi
vero se X oppure Y lo sono
falso se entrambi sono falsi
vero se X è falso
falso se X è vero
Operatori Like e Is Null
Operatore
Like
Is Null
Significato
Assomiglia a (a confronto con
stringa con caratteri jolly)
È nullo
Operatori per espressioni logiche
1.4.2. Operatori di confronto
Gli operatori più elementari per realizzare espressioni logiche sono gli operatori di confronto di
cui al RICHIAMO (minore, maggiore, minore o uguale, etc.), che tipicamente si applicano fra un
campo ed una costante, come ad esempio
• < 100 (minore di 100)
• >= 1 (maggiore o uguale a 1)
• Between 10 and 100 (Compreso fra 10 e 100)
• In (10, 20, 30) (il valore è uno di quelli elencati)
e, a seconda delle circostanze, il nome del campo può essere sottinteso (come negli esempi) oppure
espresso (Campo<100, Campo >=1, Campo Between 10 and 100). In dipendenza delle istruzioni
dove il confronto viene effettuato e di eventuali regole del singolo DBMS, i confronti possono
essere anche fra campi diversi, come ad esempio Campo1>Campo2.
È da notare che gli operatori di confronto si applicano non soltanto a dati numerici, ma anche a
dati di tipo testo (ed allora l’ordinamento di riferimento è quello alfabetico (p.e. “<” significa
“precede nell’ordine alfabetico) ed a quelli di tipo Data e ora e l’ordinamento di riferimento è
quello temporale.
RICHIAMO: § 1.4.1 - Espressioni ed operatori logici
1.4.3. Operatori logici
Gli operatori logici (vedi RICHIAMO) consentono di mettere assieme più condizioni e di
crearne un’unica, come ad esempio
• = 100 Or =200 (uguale a 100 oppure a 200)
• = 0 Or >5 (uguale a 0 oppure maggiore di 5)
• >= 10 And <= 100 (equivale a "Between 10 And 100")
Anche qui è possibile che il campo sia sottinteso oppure che appaia esplicitamente (Campo =
100 Or Campo =200, Campo = 0 Or Campo >5, Campo >= 10 And Campo <= 100) e qualche
volta è consentito il riferimento a campi distinti (p.e. Campo1= 100 Or Campo2 =200).
RICHIAMO: § 1.4.1 - Espressioni ed operatori logici
1.4.4. Operatori Like e di nullità. I caratteri Jolly
Altri operatori sono Like e Is Null (vedi RICHIAMO):
•
•
Like si usa soprattutto nelle query e usa i caratteri jolly "*" e "?", che si adoperano come in
Windows (vedi RICHIAMO): "Campo Like Stringa" (con Stringa contenente caratteri
jolly) significa "Campo è una delle stringhe compatibili con Stringa" (vedi esempio);
Is Null significa "è nullo" (vedi RICHIAMO).
Like e Is Null possono anche essere usati in combinazione con gli altri operatori.
Si rinvia agli esempi per fissare le idee.
RICHIAMO: § 1.4.1 - Espressioni ed operatori logici
RICHIAMO: Modulo 2 - § 4.3.10 – Ricerca con caratteri "jolly"
RICHIAMO: § 1.2.7 - Valori nulli
1.4.4.1.
•
•
•
Esempi di Like e Is Null (esempio)
Campo Like "*a" è vera se il campo è di tipo testo e finisce per "a" (i testi tipicamente si
indicano fra virgolette);
Campo Like "a?a" è vera se il campo è un testo e vale "aba", "ada", "ada", "afa" etc.
Campo Is Null è vera se il campo è "nullo"
Si presentano in particolare alcuni esempi degli operatori di cui sopra combinati con il Not:
• Campo Not Like "*a": il campo non finisce per "a"
• Campo Not Like "a?a": il campo non è una delle parole "aba", "ada", "ada", "afa" etc.
• Campo Is Not Null: il campo non è "nullo"
Ecco ora un esempio più complesso:
•
Titolo Like "Stori*" And Titolo Not Like "*Italia*” è vera per un titolo che sia "Storia di
Francia", "Storie degli inglesi" etc., ma non per "Storia di Italia" né per "Storie degli
italiani".