Resumen :en este tutorial, aprenderá a usar SQLite WHERE cláusula para especificar la condición de búsqueda para las filas devueltas por la consulta.
Introducción a SQLite WHERE cláusula
El WHERE cláusula es una cláusula opcional de SELECT declaración. Aparece después del FROM cláusula como la siguiente declaración:
SELECT
column_list
FROM
table
WHERE
search_condition;Code language: SQL (Structured Query Language) (sql)
En este ejemplo, agrega un WHERE cláusula al SELECT instrucción para filtrar filas devueltas por la consulta. Al evaluar un SELECT declaración con un WHERE cláusula, SQLite utiliza los siguientes pasos:
- Primero, revisa la tabla en el
FROMcláusula. - Segundo, evalúe las condiciones en el
WHEREcláusula para obtener las filas que cumplieron con estas condiciones. - Tercero, haga el conjunto de resultados final basado en las filas del paso anterior con columnas en
SELECTcláusula.
La condición de búsqueda en WHERE tiene la siguiente forma:
left_expression COMPARISON_OPERATOR right_expressionCode language: SQL (Structured Query Language) (sql) Por ejemplo, puede formar una condición de búsqueda de la siguiente manera:
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;Code language: SQL (Structured Query Language) (sql)
Además del SELECT instrucción, puede usar WHERE cláusula en UPDATE y DELETE declaraciones.
Operadores de comparación de SQLite
Un operador de comparación prueba si dos expresiones son iguales. La siguiente tabla ilustra los operadores de comparación que puede usar para construir expresiones:
| Operador | Significado |
|---|---|
| = | Igual a |
| <> o != | No es igual a |
| < | Menos de |
| > | Mayor que |
| <= | Menor o igual que |
| >= | Mayor o igual que |
Operadores lógicos SQLite
Los operadores lógicos le permiten probar la verdad de algunas expresiones. Un operador lógico devuelve 1, 0 o un valor NULL.
Tenga en cuenta que SQLite no proporciona un tipo de datos booleano, por lo que 1 significa VERDADERO y 0 significa FALSO.
La siguiente tabla ilustra los operadores lógicos de SQLite:
| Operador | Significado |
|---|---|
| TODO | devuelve 1 si todas las expresiones son 1. |
| Y | devuelve 1 si ambas expresiones son 1 y 0 si una de las expresiones es 0. |
| CUALQUIERA | devuelve 1 si cualquiera de un conjunto de comparaciones es 1. |
| ENTRE | devuelve 1 si un valor está dentro de un rango. |
| EXISTE | devuelve 1 si una subconsulta contiene filas. |
| EN | devuelve 1 si un valor está en una lista de valores. |
| ME GUSTA | devuelve 1 si un valor coincide con un patrón |
| NO | invierte el valor de otros operadores como NO EXISTE, NO EN, NO ENTRE, etc. |
| O | devuelve verdadero si cualquiera de las expresiones es 1 |
SQLite WHERE ejemplos de cláusulas
Usaremos las tracks tabla en la base de datos de muestra para ilustrar cómo usar el WHERE cláusula.
El operador de igualdad (= ) es el operador más utilizado. Por ejemplo, la siguiente consulta usa WHERE clausula el operador de igualdad para encontrar todas las pistas en el álbum id 1:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;Code language: SQL (Structured Query Language) (sql) Pruébalo
SQLite compara los valores almacenados en el AlbumId columna con un valor literal 1 para probar si son iguales. Solo se devuelven las filas que cumplen la condición.
Cuando compara dos valores, debe asegurarse de que sean del mismo tipo de datos. Debes comparar números con números, cadenas con cadenas, etc.
En caso de que compare valores en diferentes tipos de datos, por ejemplo, una cadena con un número, SQLite tiene que realizar conversiones implícitas de tipos de datos, pero en general, debe evitar hacer esto.
Utiliza el operador lógico para combinar expresiones. Por ejemplo, para obtener pistas del álbum 1 que tengan una duración superior a 200 000 milisegundos, use la siguiente instrucción:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;Code language: SQL (Structured Query Language) (sql) Pruébalo
La declaración usó dos expresiones albumid = 1 y milliseconds > 250000 . Utiliza el AND operador lógico para combinar estas expresiones.
SQLite WHERE cláusula con LIKE ejemplo de operador
A veces, es posible que no recuerde exactamente los datos que desea buscar. En este caso, realiza una búsqueda inexacta utilizando el LIKE operador.
Por ejemplo, para encontrar qué pistas compuso Smith, usa el LIKE operador de la siguiente manera:
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;Code language: SQL (Structured Query Language) (sql) Pruébalo
Obtienes temas compuestos por R.A. Smith-Diesel, Adrian Smith, etc.
SQLite WHERE cláusula con IN ejemplo de operador
El IN El operador le permite verificar si un valor está en una lista de una lista de valores separados por comas. Por ejemplo, para encontrar pistas que tienen una identificación de tipo de medio 2 o 3, use el IN operador como se muestra en la siguiente instrucción:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);Code language: SQL (Structured Query Language) (sql) Pruébalo
En este tutorial, ha aprendido a usar SQLite WHERE cláusula para filtrar filas en el conjunto de resultados final utilizando operadores lógicos y de comparación.