SQLite - Operadores lógicos

Ejemplo

Considere la tabla EMPRESA con los siguientes registros:

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

Los siguientes son ejemplos simples que muestran el uso de operadores lógicos SQLite. La siguiente instrucción SELECT enumera todos los registros en los que la EDAD es mayor o igual a 25 y el salario es mayor o igual 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 siguiente instrucción SELECT enumera todos los registros donde EDAD es mayor o igual a 25 OR el salario es mayor o igual 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 siguiente instrucción SELECT enumera todos los registros en los que AGE no es NULL, lo que significa que todos los registros porque ninguno de los registros tiene AGE igual 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 siguiente instrucción SELECT enumera todos los registros donde NAME comienza con 'Ki', no importa lo que venga después de 'Ki'.

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

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

La siguiente instrucción SELECT enumera todos los registros donde NAME comienza con 'Ki', no importa lo que venga después de 'Ki'.

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

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

La siguiente instrucción SELECT enumera todos los registros donde el valor de AGE es 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 siguiente instrucción SELECT enumera todos los registros donde el valor de AGE no es ni 25 ni 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 siguiente instrucción SELECT enumera todos los registros donde el valor de EDAD está ENTRE 25 Y 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 siguiente instrucción SELECT hace uso de la subconsulta SQL donde la subconsulta encuentra todos los registros con el campo AGE que tiene SALARIO> 65000 y luego se usa la cláusula WHERE junto con el operador EXISTS para enumerar todos los registros donde existe AGE de la consulta externa en el resultado devuelto por la subconsulta.

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

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

La siguiente instrucción SELECT hace uso de la subconsulta SQL donde la subconsulta encuentra todos los registros con el campo AGE que tiene SALARIO> 65000 y luego la cláusula WHERE se usa junto con el operador> para enumerar todos los registros donde la AGE de la consulta externa es mayor que la edad en el resultado devuelto por la subconsulta.

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

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