SQLite IN

Resumo : neste tutorial, você aprenderá como usar o INoperador SQLite para determinar se um valor corresponde a qualquer valor em uma lista de valores ou ao resultado de uma subconsulta.

Introdução ao INoperador SQLite

O operador SQLite INdetermina se um valor corresponde a qualquer valor em uma lista ou subconsulta . A sintaxe do IN operador é a seguinte:

expression [NOT] IN (value_list|subquery);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Pode expressionser qualquer expressão válida ou uma coluna de uma tabela.

Uma lista de valores é uma lista de valores fixos ou um conjunto de resultados de uma única coluna retornada por uma subconsulta. O tipo de expressão retornado e os valores na lista devem ser iguais.

O INoperador retorna verdadeiro ou falso dependendo se a expressão corresponde ou não a qualquer valor em uma lista de valores. Para negar a lista de valores, você usa o NOT INoperador.

INExemplos de operadores SQLite

Usaremos a Trackstabela do banco de dados de amostra para a demonstração.

A instrução a seguir usa o INoperador para consultar as trilhas cujo ID de tipo de mídia é 1 ou 2.

SELECT
	TrackId,
	Name,
	Mediatypeid
FROM
	Tracks
WHERE
	MediaTypeId IN (1, 2)
ORDER BY
	Name ASC;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Operador SQLite IN

Esta consulta usa o ORoperador em vez do INoperador para retornar o mesmo conjunto de resultados da consulta acima:

SELECT
	TrackId,
	Name,
	MediaTypeId
FROM
	Tracks
WHERE
	MediaTypeId = 1 OR MediaTypeId = 2
ORDER BY
	Name ASC;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Como você pode ver nas consultas, usar o INoperador é muito mais curto.

Se você tiver uma consulta que usa muitos ORoperadores, considere usar o INoperador para tornar a consulta mais legível.

INOperador SQLite com um exemplo de subconsulta

A consulta a seguir retorna uma lista de IDs de álbum do ID de artista 12:

SELECT albumid
FROM albums
WHERE artistid = 12;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

SQLite IN com exemplo de subconsulta

Para obter as faixas que pertencem ao ID de artista 12, você pode combinar o INoperador com uma subconsulta da seguinte forma:

SELECT
	TrackId, 
	Name, 
	AlbumId
FROM
	Tracks
WHERE
	AlbumId IN (
		SELECT
			AlbumId
		FROM
			Albums
		WHERE
			ArtistId = 12
	);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo de subconsulta SQLite IN

Neste exemplo:

  • Primeiro, a subconsulta retorna uma lista de IDs de álbuns que pertencem ao ID de artista 12.
  • Em seguida, a consulta externa retorna todas as faixas cujo ID do álbum corresponde à lista de IDs do álbum retornada pela subconsulta.

Exemplos SQLite NOT IN

A instrução a seguir retorna uma lista de faixas cujo ID de gênero não está em uma lista de (1,2,3).

SELECT
	trackid,
	name,
	genreid
FROM
	tracks
WHERE
	genreid NOT IN (1, 2,3);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Tente

Exemplo SQLite NOT IN

Neste tutorial, você aprendeu como usar o INoperador SQLite para combinar um valor com uma lista de valores ou uma subconsulta.

Deixe um comentário

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