In questa lezione iniziamo ad esaminare alcuni operatori utili in nel costruire query complesse.
Operatori di paragone
Confrontano due espressioni, o due valori numerici e non, in una query e restituiscono successivamente un valore logico, ovvero vero (TRUE
) o falso (FALSE
).
Uguaglianza ( = )
Questo operatore verifica l'uguaglianza fra le due espressioni o i due valori. Il confronto restituisce TRUE
solamente se i valori o i risultati delle due espressioni (possono essere anche matematiche) sono uguali.
Nome e cognome degli impiegati che lavorano nel dipartimento con ID uguale a 40
SQL> SELECT first_name AS nome, last_name AS cognome, 2 department_id FROM employees 3 WHERE department_id = 40;
Disuguaglianza ( <> )
Restituisce TRUE
solamente se le due espressioni messe a confronto (o i due valori), quella a destra e quella a sinistra dell'operatore, non coincidono ovvero sono diverse.
Dati dei dipartimenti (tabella departments) il cui ID è diverso da 10
SQL> SELECT * FROM departments WHERE department_id <> 10;
Minoranza ( < )
Restituisce TRUE
solamente se il valore dell'espressione a sinistra è minore di quello dell'espressione situata a destra.
Impiegati che guadagnano meno di 2500
SQL> SELECT last_name AS cognome, salary 2 FROM employees 3 WHERE salary < 2500;
Maggioranza ( > )
Restituisce TRUE
solamente se il valore dell'espressione a sinistra è maggiore di quello dell'espressione a destra.
Impiegati che guadagnano più di 16000
SQL> SELECT last_name AS cognome, salary 2 FROM employees 3 WHERE salary > 16000;
Minore o uguale di ( <= )
Restituisce TRUE
solo se il valore dell'espressione a sinistra è minore o uguale al valore dell'espressione a destra.
Impiegati che guadagnano una cifra minore o uguale a 2200
SQL> SELECT last_name AS cognome, salary 2 FROM employees 3 WHERE salary <= 2200;
Maggiore o uguale di ( >= )
Restituisce VERO solo se il valore dell'espressione a sinistra è maggiore o uguale al valore dell'espressione a destra.
Impiegati che guadagnano almeno 13500
SQL> SELECT last_name AS cognome, salary 2 FROM employees 3 WHERE salary >= 13500;
Operatori logici
Gli operatori logici AND e OR sono utilizzati per combinare i risultati di due o più condizioni di paragone al fine di ottenere un unico risultato. L'operatore logico NOT è invece impiegato per negare il risultato di un singolo confronto o valore.
AND
Restituisce il valore TRUE
se entrambe le espressioni (a sinistra e a destra dell'operatore AND) restituiscono a loro volta il valore TRUE
. Se una delle due espressioni restituisce il valore FALSE
allora l'operatore AND restituisce sempre FALSE
.
Esiste un impiegato il cui cognome è 'Bell' e guadagna 4000 ?
SQL> SELECT last_name AS cognome, salary 2 FROM employees WHERE last_name = 'Bell' 3 AND salary = 4000;
OR
Restituisce il valore TRUE
se almeno una delle due o più espressioni coinvolte restituisce il valore TRUE
. Se tutte le espressioni restituiscono FALSE
allora anche OR
restituirà FALSE
.
Impiegati il cui cognome è uguale a 'Gates' oppure guadagno vale 12000
SQL> SELECT last_name AS cognome, salary 2 FROM employees 3 WHERE last_name = 'Gates' OR salary = 12000;
NOT
Restituisce l'opposto del valore dell'espressione: TRUE
se il valore dell'espressione è FALSE
e viceversa.
Impiegati il cui dipartimento è inferiore a 30
SQL> SELECT last_name AS cognome, department_id 2 FROM employees 3 WHERE NOT (department_id >= 30);
L'espressione a destra dell'operatore logico NOT restituisce tutti quei dipartimenti il cui numero è maggiore o uguale a 30, ma la presenza dell'operatore NOT nega il valore dell'espressione restituendo esattamente l'opposto (dipartimenti con ID < 30).