DevPath · Aprenda a programar ESPTEN

Filtragem avançada

IN, BETWEEN, LIKE e IS NULL

IN: pertencer a uma lista

IN verifica se um valor está dentro de uma lista. É uma forma compacta de escrever vários OR sobre a mesma coluna:

-- Equivale a categoria = 'audio' OR categoria = 'telas'
SELECT * FROM produtos
WHERE categoria IN ('audio', 'telas');

-- Também com NOT IN para excluir
SELECT * FROM produtos
WHERE categoria NOT IN ('audio', 'telas');

BETWEEN: um intervalo (inclusivo)

BETWEEN a AND b seleciona valores entre a e b, incluindo ambos os extremos:

-- preco >= 40 AND preco <= 150
SELECT * FROM produtos
WHERE preco BETWEEN 40 AND 150;

LIKE: padrões de texto

LIKE busca textos que se encaixem em um padrão, usando dois curingas:

Curinga Coincide com
% qualquer sequência de caracteres (incluindo a vazia)
_ um caractere exatamente
SELECT * FROM produtos WHERE nome LIKE 'A%';    -- começa com A
SELECT * FROM produtos WHERE nome LIKE '%or';   -- termina em "or"
SELECT * FROM produtos WHERE nome LIKE '%cro%'; -- contém "cro"
SELECT * FROM produtos WHERE nome LIKE 'M_u__'; -- M + 1 + u + 2 = "Mouse"

IS NULL / IS NOT NULL

NULL representa a ausência de valor e é especial: não se compara com =. Para detectá-lo se usa IS NULL (ou IS NOT NULL):

SELECT * FROM produtos WHERE estoque IS NULL;      -- sem dado de estoque
SELECT * FROM produtos WHERE estoque IS NOT NULL;  -- com dado de estoque

Atenção: coluna = NULL nunca é verdadeiro, nem mesmo para os nulos. Sempre IS NULL.

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← Operadores lógicos e de comparaçãoDISTINCT e LIMIT / OFFSET →