sei sul sito di Giovanni Fraterno

ATTENZIONE che, per importanza sociale, subito dopo il legame affettivo che si instaura all'interno di una famiglia, viene quello che si instaura fra il professore e i suoi alunni, e che turbare entrambi i rapporti può essere carico di conseguenze (sabato 31° gennaio 2004, il professore).
8) Le condizioni di ricerca con l’SQL
( 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 )

Le condizioni di ricerca sono utilizzate insieme alla clausola WHERE per determinare i criteri di selezione delle righe.

 

Nella scrittura delle condizioni si usano i segni di confronto: uguale, minore, maggiore, diverso, maggiore uguale e minore uguale, ovvero:

=, <, >, <>, >=, <=

 

Una condizione di ricerca è costruita anche mettendo insieme più condizioni legate tra loro grazie agli operatori AND e OR, eventualmente precedute dall’operatore NOT.

 

L’ordine di applicazione degli operatori è il seguente: NOT viene applicato prima di AND, e AND prima di OR.

 

Le condizioni di ricerca possono utilizzare anche altre parole del linguaggio SQL che indicano operatori o predicati, con i quali è possibile rendere ancora più raffinate le interrogazioni della base di dati.

 

L’operatore BETWEEN ad esempio controlla se un valore è compreso all’interno di un intervallo di valori, inclusi gli estremi.

 

E’ possibile specificare, anteponendolo a BETWEEN, anche l’operatore logico NOT per valutare la condizione opposta, cioè per controllare se il valore non rientra nell’intervallo specificato.

 

Per ottenere ad esempio l’elenco degli studenti con cognome, nome e matricola nati tra la data 01/01/85 e la data 31/12/89, si può usare la parola BETWEEN, ovvero scrivere:

 

SELECT Cognome, Nome, Matricola

FROM Studenti

WHERE Nascita BETWEEN 01/01/85 AND 31/12/89

 

L’operatore IN controlla invece se un valore appartiene ad un insieme specificato di valori.

 

E’ possibile cioè richiedere le righe che hanno i valori di un attributo compresi in una lista di valori indicati dopo la parola IN all’interno della condizione scritta dopo WHERE.

 

Per ottenere ad esempio tutti i dati degli studenti che risiedono nelle province di Milano, Mantova, Brescia e Como, useremo il seguente costrutto:

 

SELECT *

FROM Studenti

WHERE Prov IN (‘MI’, ‘MN’ , ‘BS’, ‘CO’)

 

Anche IN può essere preceduto da NOT per indicare la condizione opposta, cioè la non appartenenza del valore all’insieme dei valori.

 

L’operatore LIKE confronta infine il valore di un attributo di tipo carattere con un modello di stringa che può contenere un carattere jolly.

 

I caratteri jolly sono:

 

- l’underscore per indicare un singolo carattere qualsiasi in quella posizione della stringa

 

- il percento per indicare una sequenza qualsiasi di caratteri in quella posizione della stringa.

 

Con il percento in coda a xyz, ad esempio, vengono ricercate tutte le stringhe che iniziano con i caratteri xyz.

 

Con il percento prima di xyz, ad esempio, vengono ricercate tutte le stringhe che finiscono con i caratteri xyz.

 

Con il percento prima e dopo xyz, ad esempio, vengono ricercate tutte le stringhe che contengono al loro interno i caratteri xyz.

 

Escludendo percento da xyz avremo le stringhe corrispondenti esattamente a xyz.

 

Usando infine l’underscore tra x e z avremo tutte le stringhe lunghe 3 caratteri con la prima e la terza lettera che corrispondano rispettivamente a x e z.

 

Nel successivo esempio vengono estratti tutti gli studenti il cui cognome inizia con Ros:

 

SELECT Cognome, Filiale

FROM Studenti

WHERE Cognome LIKE ‘Ros%’

 

Anche in questo caso si può usare l’operatore NOT prima di LIKE per indicare criteri di ricerca opposti.

 

Vediamo infine il predicato IS NULL.

 

Quest’ultimo confronta il valore presente in una colonna con il valore nullo.

 

L’uso di IS NULL è il solo modo per controllare la presenza dei valori nulli in una colonna.

 

E’ possibile inserire l’operatore di negazione NOT per valutare la condizione opposta, in altre parole per controllare se un attributo non ha valore nulli.

 

L’elenco con cognome e nome degli studenti per i quali non è nullo il valore provincia, è ottenibile usando IS NOT NULL, ovvero scrivendo:

 

SELECT Cognome, Nome

FROM Studenti

WHERE Prov IS NOT NULL



utenti in questo momento connessi alla rete di siti web di Giovanni Fraterno: