economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

SQL

Linguaggio SQL - Terza parte.

A cura di Andrea Silvestri

Pubblicato il 25/12/2000

Vediamo in dettaglio gli operatori di confronto forniti da SQL.

Se volessi estrarre tutti i dipendenti il cui nome inizia con M dovrei usare l’operatore LIKE:

SELECT * FROM impiegati WHERE nome LIKE ‘M%’;

Il segno di percentuale (%) significa che in quella posizione possono esserci zero o piu’ caratteri.
Mentre scrivendo

SELECT * FROM impiegati WHERE nome LIKE ‘MARI_’;

Otterrei tutti i nomi tipo MARIO, MARIA, ma non MARINA, perche’ il segno di underscore (_) significa che in quella posizione deve esserci esattamente un carattere.
Se volessi tutti i dipendenti che lavorano in una delle sedi 10, 20, 30 potrei usare una combinazione di OR oppure l’operatore IN:

SELECT * FROM impiegati WHERE sede IN (10,20,30);

E per estrarre tutti i dipendenti che lavorano nelle sedi comprese tra 15 e 40 posso usare l’operatore BETWEEN

SELECT * FROM impiegati WHERE sede BETWEEN 15 AND 40;

Gli ultimi due operatori funzionano anche con le stringhe e con le date.
All’appello mancano ancora gli operatori di confronto minore (<), maggiore (>), minore uguale (<=), maggiore uguale (>=) e diverso (!= oppure <> oppure ^=) e l’operatore di negazione NOT. Che posso usare per negarne altri, ad esempio: NOT LIKE, NOT BETWEEN, NOT IN ecc.
In queste due tabelle vediamo riassunti gli operatori di confronto:

OperatoreDescrizioneEsempio
<minoreeta<18
>maggioreeta>18
<=minore ugualeeta<=18
>=maggiore ugualeeta>=18
<> o != o ^=tre modi per identificare il diversoeta<>18
BETWEENcompreso in un intervalloeta between 18 and 21
LIKEsimile anome like 'MARI_'
INcompreso in un insiemeeta in (18,21,35)

e gli operatori booleani:

OperatoreDescrizioneEsempio
ANDCombina due condizioni, devono essere soddisfatte entrambeeta>18 and eta<21
ORCombina due condizioni, basta che una sola sia verificataeta>18 or eta<21
NOTNegazioneeta not in (18,21)
ISE' simile al simbolo =, indispensabile per il confronto con NULLeta is null


Termino parlando di NULL. Vi ricordate la tabella IMPIEGATI? Il sig. Mario Rossi non aveva un superiore. Per estrarre tutti i record in cui nella colonna superiore non e' presente alcun valore dovrei scrivere:

SELECT * FROM impiegati WHERE superiore IS NULL;

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS