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 = NULLnunca é verdadeiro, nem mesmo para os nulos. SempreIS NULL.