Resumo :neste tutorial, você aprenderá como usar SQLite
WHERE
cláusula para especificar a condição de pesquisa para linhas retornadas pela consulta. Introdução ao SQLite WHERE
cláusula
O
WHERE
cláusula é uma cláusula opcional do SELECT
demonstração. Ele aparece após o FROM
cláusula como a seguinte declaração:SELECT
column_list
FROM
table
WHERE
search_condition;
Code language: SQL (Structured Query Language) (sql)
Neste exemplo, você adiciona um
WHERE
cláusula para o SELECT
instrução para filtrar as linhas retornadas pela consulta. Ao avaliar um SELECT
declaração com um WHERE
cláusula, o SQLite usa as seguintes etapas:- Primeiro, verifique a tabela em
FROM
cláusula. - Segundo, avalie as condições em
WHERE
cláusula para obter as linhas que atenderam a essas condições. - Terceiro, faça o resultado final definido com base nas linhas da etapa anterior com colunas no
SELECT
cláusula.
A condição de pesquisa em
WHERE
tem a seguinte forma:left_expression COMPARISON_OPERATOR right_expression
Code language: SQL (Structured Query Language) (sql)
Por exemplo, você pode formar uma condição de pesquisa da seguinte forma:
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)
Além do
SELECT
declaração, você pode usar o WHERE
cláusula no UPDATE
e DELETE
declarações. 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 você pode usar para construir expressões:
Operador | Significado |
---|---|
= | Igual a |
<> ou != | Não é igual a |
Menor que | |
> | Maior que |
<= | Menor ou igual a |
>= | Maior 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 o SQLite não fornece o tipo de dados Boolean, 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. |
GOSTEI | 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 uma das expressões for 1 |
SQLite WHERE
exemplos de cláusula
Usaremos as
tracks
tabela no banco de dados de exemplo para ilustrar como usar o WHERE
cláusula. O operador de igualdade (
=
) é o operador mais comumente usado. Por exemplo, a consulta a seguir usa o WHERE
cláusula o operador de igualdade para encontrar todas as faixas no ID do álbum 1:SELECT
name,
milliseconds,
bytes,
albumid
FROM
tracks
WHERE
albumid = 1;
Code language: SQL (Structured Query Language) (sql)
Tente
SQLite compara os valores armazenados no
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, string com strings, etc.
Caso você compare valores em diferentes tipos de dados, por exemplo, uma string com um número, o SQLite precisa realizar conversões implícitas de tipo 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;
Code language: SQL (Structured Query Language) (sql)
Tente
A instrução usou duas expressões
albumid = 1
e milliseconds > 250000
. Ele usa o AND
operador lógico para combinar essas expressões. SQLite WHERE
cláusula com LIKE
exemplo de operador
Às vezes, você pode não se lembrar exatamente dos dados que deseja pesquisar. Nesse caso, você realiza uma pesquisa inexata usando o
LIKE
operador. Por exemplo, para descobrir quais faixas compostas por Smith, você usa o
LIKE
operador da seguinte forma:SELECT
name,
albumid,
composer
FROM
tracks
WHERE
composer LIKE '%Smith%'
ORDER BY
albumid;
Code language: SQL (Structured Query Language) (sql)
Tente
Você recebe faixas compostas por R.A. Smith-Diesel, Adrian Smith, etc.
SQLite WHERE
cláusula com o IN
exemplo de operador
O
IN
O 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 como mostrado na seguinte declaração:SELECT
name,
albumid,
mediatypeid
FROM
tracks
WHERE
mediatypeid IN (2, 3);
Code language: SQL (Structured Query Language) (sql)
Tente
Neste tutorial, você aprendeu como usar o SQLite
WHERE
cláusula para filtrar linhas no conjunto de resultados final usando comparação e operadores lógicos.