SQLite - Operatori logici

Esempio

Considera la tabella AZIENDA con i seguenti record:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Di seguito sono riportati semplici esempi che mostrano l'utilizzo degli operatori logici SQLite. La seguente istruzione SELECT elenca tutti i record in cui AGE è maggiore o uguale a 25 e lo stipendio è maggiore o uguale a 65000,00.

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

La seguente istruzione SELECT elenca tutti i record in cui AGE è maggiore o uguale a 25 OR lo stipendio è maggiore o uguale a 65000,00.

sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

La seguente istruzione SELECT elenca tutti i record in cui AGE non è NULL, il che significa che tutti i record perché nessuno dei record ha AGE uguale a NULL.

sqlite>  SELECT * FROM COMPANY WHERE AGE IS NOT NULL;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

La seguente istruzione SELECT elenca tutti i record in cui NAME inizia con "Ki", ​​non importa cosa viene dopo "Ki".

sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22          South-Hall  45000.0

La seguente istruzione SELECT elenca tutti i record in cui NAME inizia con "Ki", ​​non importa cosa viene dopo "Ki".

sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22          South-Hall  45000.0

La seguente istruzione SELECT elenca tutti i record in cui il valore AGE è 25 o 27.

sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

La seguente istruzione SELECT elenca tutti i record in cui il valore AGE non è né 25 né 27.

sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
3           Teddy       23          Norway      20000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

La seguente istruzione SELECT elenca tutti i record in cui il valore AGE è compreso tra 25 e 27.

sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0

La seguente istruzione SELECT utilizza la sottoquery SQL in cui la sottoquery trova tutti i record con il campo AGE con SALARY> 65000 e successiva viene utilizzata la clausola WHERE insieme all'operatore EXISTS per elencare tutti i record in cui esiste la query AGE dall'esterno il risultato restituito dalla sottoquery.

sqlite> SELECT AGE FROM COMPANY 
   WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

AGE
----------
32
25
23
25
27
22
24

La seguente istruzione SELECT utilizza la sottoquery SQL in cui la sottoquery trova tutti i record con il campo AGE con SALARY> 65000 e successivamente viene utilizzata la clausola WHERE insieme all'operatore> per elencare tutti i record in cui AGE dalla query esterna è maggiore del età nel risultato restituito dalla sottoquery.

sqlite> SELECT * FROM COMPANY 
   WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0