English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite WHERELa cláusula se utiliza para especificar las condiciones cuando se obtienen datos de una o más tablas.
Si se cumple la condición dada, es decir, es verdadera, entonces se devolverán valores específicos de la tabla. Deberá usar la cláusula WHERE para filtrar los registros y extraer solo los registros necesarios.
La cláusula WHERE no solo se utiliza en las sentencias SELECT, sino también en las sentencias UPDATE, DELETE, etc., lo que se explicará en capítulos posteriores.
A continuación, se muestra la sintaxis básica de la sentencia SELECT de SQLite con cláusula WHERE.
SELECT column1, column2, columnN FROM table_name WHERE [condition]
Puede usarOperadores de comparación o lógicos (Por ejemplo, >, <, =, LIKE, NOT, etc., para especificar condiciones. Vea la tabla COMPANY con los siguientes registros-
ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 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 muestra un ejemplo simple de uso del operador lógico de SQLite. La siguiente sentencia SELECT enumera AGE(edad) mayor o igual a25 y SALARY (salario) mayor o igual a65000.00 todas las grabaciones.
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000; ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
La siguiente sentencia SELECT enumera AGE(edad) mayor o igual a25 O SALARY (salario) mayor o igual o65000.00 todas las grabaciones.
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 O SALARY >= 65000; ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 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
Después de la consulta SELECT, se listan todas las grabaciones de AGE (edad) que no son NULL, lo que significa que se mostrarán todas las grabaciones, ya que no hay grabaciones cuyos valores de AGE sean NULL.
sqlite> * FROM COMPANY WHERE AGE IS NOT NULL; ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 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 consulta SELECT lista todas las grabaciones que comienzan con 'Ki', sin relación con cualquier grabación posterior a 'Ki'.
sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%'; ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 6 Kim 22 South-Hall 45000.0
La siguiente consulta SELECT lista todas las grabaciones que comienzan con 'Ki', sin relación con las grabaciones posteriores a 'Ki'.
sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki'*'; ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 6 Kim 22 South-Hall 45000.0
Después de la consulta SELECT, se listan los valores de AGE (edad) que son25O27Todas las grabaciones.
sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 ); ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
La siguiente consulta SELECT lista los valores de AGE (edad) que no son25Tampoco27Todas las grabaciones.
sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 ); ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 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
Después de la consulta SELECT, se listan los valores de AGE (edad) en25Y27Todas las grabaciones entre
sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27; ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0
La siguiente consulta SELECT utiliza subconsultas SQL, donde la subconsulta encuentra SALARY > del campo AGE (edad) 65Todas las grabaciones de 000, seguidas de la cláusula WHERE y el operador EXISTS para listar las grabaciones externas de AGE que existen en los resultados devueltos 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 consulta SELECT utiliza subconsultas SQL, donde la subconsulta encuentra SALARY > del campo AGE 65Todas las grabaciones de 000, así como las subconsultas utilizadas con la cláusula WHERE para listar las grabaciones externas de AGE mayores que el resultado devuelto por la subconsulta.
sqlite> SELECT * FROM COMPANY WHERE EDAD > (SELECT EDAD FROM COMPANY WHERE SALARY > 65000); ID NOMBRE EDAD DIRECCIÓN SALARIO ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0