Resumo : neste tutorial, você aprenderá como usar WHERE
a cláusula SQLite para especificar a condição de pesquisa para linhas retornadas pela consulta.
WHERE
Introdução à cláusula SQLite
A WHERE
cláusula é uma cláusula opcional da SELECT
declaração. Aparece após a FROM
cláusula como a seguinte declaração:
SELECT
column_list
FROM
table
WHERE
search_condition;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, você adiciona uma WHERE
cláusula à SELECT
instrução para filtrar as linhas retornadas pela consulta. Ao avaliar uma SELECT
instrução com uma WHERE
cláusula, o SQLite usa as seguintes etapas:
- Primeiro, verifique a tabela da
FROM
cláusula. - Segundo, avalie as condições da
WHERE
cláusula para obter as linhas que atendem a essas condições. - Terceiro, faça o conjunto de resultados final com base nas linhas da etapa anterior com colunas na
SELECT
cláusula.
A condição de pesquisa no WHERE
tem o seguinte formato:
left_expression COMPARISON_OPERATOR right_expression
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Por exemplo, você pode formar uma condição de pesquisa da seguinte maneira:
WHERE column_1 = 100;
WHERE column_2 IN (1,2,3);
WHERE column_3 LIKE 'An%';
WHERE column_4 BETWEEN 10 AND 20;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Além da SELECT
instrução, você pode usar a WHERE
cláusula nas instruções UPDATE
e DELETE
.
Operadores de comparação SQLite
Um operador de comparação testa se duas expressões são iguais. A tabela a seguir ilustra os operadores de comparação que podem ser usados para construir expressões:
Operador | Significado |
---|---|
= | Igual a |
<> ou! = | Não é igual a |
< | Menor que |
> | Maior que |
<= | Menos que ou igual a |
>= | Melhor que ou igual a |
Operadores lógicos SQLite
Os operadores lógicos permitem testar a veracidade de algumas expressões. Um operador lógico retorna 1, 0 ou um valor NULL.
Observe que SQLite não fornece tipo de dados booleano, portanto 1 significa TRUE e 0 significa FALSE.
A tabela a seguir ilustra os operadores lógicos SQLite:
Operador | Significado |
---|---|
TODOS | retorna 1 se todas as expressões forem 1. |
E | retorna 1 se ambas as expressões forem 1 e 0 se uma das expressões for 0. |
QUALQUER | retorna 1 se qualquer um de um conjunto de comparações for 1. |
ENTRE | retorna 1 se um valor estiver dentro de um intervalo. |
EXISTE | retorna 1 se uma subconsulta contiver alguma linha. |
EM | retorna 1 se um valor estiver em uma lista de valores. |
COMO | retorna 1 se um valor corresponder a um padrão |
NÃO | inverte o valor de outros operadores como NOT EXISTS, NOT IN, NOT BETWEEN, etc. |
OU | retorna verdadeiro se qualquer uma das expressões for 1 |
WHERE
Exemplos de cláusulas SQLite
Usaremos a tracks
tabela no banco de dados de exemplo para ilustrar como usar a WHERE
cláusula.
O operador de igualdade ( =
) é o operador mais comumente usado. Por exemplo, a consulta a seguir usa a WHERE
cláusula do operador de igualdade para encontrar todas as faixas no ID do álbum 1:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
SQLite compara os valores armazenados na AlbumId
coluna com um valor literal 1
para testar se são iguais. Somente as linhas que satisfazem a condição são retornadas.
Ao comparar dois valores, você deve garantir que eles sejam do mesmo tipo de dados. Você deve comparar números com números, strings com strings, etc.
Caso você compare valores em diferentes tipos de dados, por exemplo, uma string com um número, o SQLite deve realizar conversões implícitas de tipos de dados, mas em geral, você deve evitar fazer isso.
Você usa o operador lógico para combinar expressões. Por exemplo, para obter faixas do álbum 1 com duração superior a 200.000 milissegundos, use a seguinte instrução:
SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1
AND milliseconds > 250000;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A declaração usou duas expressões albumid = 1
e milliseconds > 250000
. Ele usa o AND
operador lógico para combinar essas expressões.
Cláusula SQLite WHERE
com LIKE
exemplo de operador
Às vezes, você pode não se lembrar exatamente dos dados que deseja pesquisar. Neste caso, você realiza uma pesquisa inexata usando o LIKE
operador.
Por exemplo, para descobrir quais faixas foram compostas por Smith, você usa o LIKE
operador da seguinte forma:
SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Você obtém faixas compostas por RA Smith-Diesel, Adrian Smith, etc.
Cláusula SQLite WHERE
com o IN
exemplo do operador
O IN
operador permite verificar se um valor está em uma lista de valores separados por vírgula. Por exemplo, para encontrar faixas cujo ID de tipo de mídia seja 2 ou 3, use o IN
operador conforme mostrado na instrução a seguir:
SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste tutorial, você aprendeu como usar a WHERE
cláusula SQLite para filtrar linhas no conjunto de resultados final usando comparação e operadores lógicos.