SQLite DÓNDE Una cláusula se utiliza para especificar una condición al obtener datos de una o más tablas.
Si se cumple esta condición, entonces es verdadera, entonces se devuelve un valor específico de la tabla. Deberá usar la cláusula WHERE para filtrar los registros y obtener solo los registros que necesita.
La cláusula WHERE se usa no solo en la instrucción SELECT, sino también en UPDATE, DELETE, etc., que se discutirán en los siguientes capítulos.
A continuación se muestra la sintaxis básica de una instrucción SELECT de SQLite con una cláusula WHERE.
SELECT column1, column2, columnN FROM table_name WHERE [condition]
Puede especificar una condición utilizando operadores de comparación u operadores booleanos como>, <, =, LIKE, NOT, etc. Considere una tabla EMPRESA con las siguientes entradas:
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
A continuación se muestran ejemplos simples que muestran el uso de operadores booleanos de SQLite. Después de la instrucción SELECT, se enumeran todos los registros con una EDAD mayor o igual a 25. Y el salario es mayor o igual a 65.000,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
Después de la instrucción SELECT, se enumeran todos los registros con una EDAD mayor o igual a 25. O el salario es mayor o igual a 65.000,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 todos los registros, porque ninguno de los registros tiene una 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
Después de la instrucción SELECT, se enumeran todos los registros en los que 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
Después de la instrucción SELECT, se enumeran todos los registros en los que 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
Después de la instrucción SELECT, se enumeran todos los registros con un valor de EDAD de 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
Después de la instrucción SELECT, se enumeran todos los registros donde el valor 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 en los que el valor de EDAD es 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 usa una subconsulta SQL, donde la subconsulta encuentra todos los registros con un campo AGE que tenga SALARIO> 65000 y posterior. La cláusula WHERE se utiliza junto con el operador EXISTS para enumerar todos los registros en los que existe una AGE de una 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 usa una subconsulta SQL, donde la subconsulta encuentra todos los registros con un campo AGE que tenga SALARIO> 65000 y posterior. La cláusula WHERE se usa junto con el operador> para enumerar todos los registros para los que 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
🚫