SQLite Onde

Resumo : neste tutorial, você aprenderá como usar WHEREa cláusula SQLite para especificar a condição de pesquisa para linhas retornadas pela consulta.

WHEREIntrodução à cláusula SQLite

A WHEREcláusula é uma cláusula opcional da SELECTdeclaração. Aparece após a FROMclá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 WHEREcláusula à SELECTinstrução para filtrar as linhas retornadas pela consulta. Ao avaliar uma SELECTinstrução com uma WHEREcláusula, o SQLite usa as seguintes etapas:

  1. Primeiro, verifique a tabela da FROMcláusula.
  2. Segundo, avalie as condições da WHEREcláusula para obter as linhas que atendem a essas condições.
  3. Terceiro, faça o conjunto de resultados final com base nas linhas da etapa anterior com colunas na SELECTcláusula.

A condição de pesquisa no WHEREtem o seguinte formato:

left_expression COMPARISON_OPERATOR right_expressionLinguagem 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 SELECTinstrução, você pode usar a WHEREcláusula nas instruções UPDATEe 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

WHEREExemplos de cláusulas SQLite

Usaremos a trackstabela no banco de dados de exemplo para ilustrar como usar a WHEREcláusula.

O operador de igualdade ( =) é o operador mais comumente usado. Por exemplo, a consulta a seguir usa a WHEREclá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 )

Tente

Cláusula SQLite WHERE

SQLite compara os valores armazenados na AlbumIdcoluna com um valor literal 1para 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 )

Tente

Operador de comparação de cláusula SQLite WHERE

A declaração usou duas expressões albumid = 1e milliseconds > 250000. Ele usa o ANDoperador lógico para combinar essas expressões.

SQLite WHERE múltiplas condições


Cláusula SQLite WHEREcom LIKEexemplo 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 LIKEoperador.

Por exemplo, para descobrir quais faixas foram compostas por Smith, você usa o LIKEoperador 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 )

Tente

SQLite WHERE com operador LIKE

Você obtém faixas compostas por RA Smith-Diesel, Adrian Smith, etc.

Cláusula SQLite WHEREcom o INexemplo do operador

O INoperador 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 INoperador 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 )

Tente

SQLite WHERE com operador IN

Neste tutorial, você aprendeu como usar a WHEREcláusula SQLite para filtrar linhas no conjunto de resultados final usando comparação e operadores lógicos.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *