SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite Onde


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:
  1. Primeiro, verifique a tabela em FROM cláusula.
  2. Segundo, avalie as condições em WHERE cláusula para obter as linhas que atenderam a essas condições.
  3. 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_expressionCode 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.