📁
Forum per Webmaster
SQL

Condizioni di ricerca

Le condizioni di ricerca sono utilizzate insieme alle clausole Where e Having per determinare i criteri di selezione rispettivamente delle righe e dei raggruppamenti. Nella scrittura delle condizioni si usano i segni del confronto , , , , , .
Una condizione di ricerca è costruita anche mettendo insieme più condizioni legate tra loro con gli operatori AND e OR, precedute eventualmente dall'operazione 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 alla base di dati.

BETWEEN

L'operatore BETWEEN 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 l'elenco dei dipendenti (con cognome, nome, funzione) che sono stati assunti tra la data 1/1/95 e la data 31/12/99, si può usare la parola Between nella scrittura della condizione dopo Where:

SELECT Cognome, Nome, Funzione
 FROM Personale
 WHERE Assunto BETWEEN 01/01/95 AND 12/31/99;

IN

Loperatore IN controlla se un valore appartiene ad un insieme specificato di valori, cioè è possibile 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 tutti i dati dei dipendenti che risiedono nelle province di Milano, Mantova, Brescia e Como, si usa il comando Select nella forma:

SELECT *
 FROM Personale
 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.

LIKE

L'operatore LIKE confronta il valore di un attributo di tipo carattere con un modello di stringa che può contenere caratteri jolly (o metacaratteri). I caratteri jolly sono: _ (underscore) per indicare un singolo carattere qualsiasi in quella posizione della stringa; % (percento) per indicare una sequenza qualsiasi di caratteri in quella posizione della stringa.

Per esempio:

LIKE 'xyz%' vengono ricercate tutte le stringhe che iniziano con
i caratteri 'xyz'
LIKE '%xyz' serve a ricercare tutte le stringhe che finiscono con
i caratteri 'xyz'
LIKE '%xyz%' per tutte le stringhe che contengono al loro interno
i caratteri 'xyz';
LIKE '_xyz' controlla le stringhe di 4 caratteri che finiscono con 'xyz'.

L'operatore Like utilizzato con un modello di stringa che non contiene caratteri jolly è del tutto equivalente all'operatore .
Con il comando Select scritto nella forma seguente, è possibile ottenere il cognome e la filiale dei dipendenti con il cognome che inizia con 'Ros' (Rossi, Rosi, Rossini,...):

SELECT Cognome, Filiale
 FROM Personale
 WHERE Cognome LIKE 'Ros%';

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

IS NULL

Il predicato IS NULL confronta il valore in una colonna con il valore Null.
L’uso di questo predicato è il solo modo per controllare la presenza del valore Null in una colonna. È possibile inserire l'operatore di negazione NOT per valutare la condizione opposta, in altre parole per controllare se un attributo non ha valore Null. L'operatore Is viene utilizzato solo con la parola Null.

Per esempio se si vuole ottenere l'elenco con cognome e nome dei dipendenti per i quali è indicata la provincia nella tabella Personale, si deve scrivere la seguente istruzione Select:

SELECT Cognome, Nome
 FROM Personale
 WHERE Prov IS NOT NULL;

Argomenti nella stessa categoria