English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Cláusula WHERE en SQLite

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.

Sintaxis

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]

Ejemplo en línea

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