IN: pertenecer a una lista
IN comprueba si un valor está dentro de una lista. Es una forma compacta
de escribir varios OR sobre la misma columna:
-- Equivale a categoria = 'audio' OR categoria = 'pantallas'
SELECT * FROM productos
WHERE categoria IN ('audio', 'pantallas');
-- También con NOT IN para excluir
SELECT * FROM productos
WHERE categoria NOT IN ('audio', 'pantallas');
BETWEEN: un rango (inclusivo)
BETWEEN a AND b selecciona valores entre a y b, incluyendo ambos
extremos:
-- precio >= 40 AND precio <= 150
SELECT * FROM productos
WHERE precio BETWEEN 40 AND 150;
LIKE: patrones de texto
LIKE busca textos que encajen con un patrón, usando dos comodines:
| Comodín | Coincide con |
|---|---|
% |
cualquier secuencia de caracteres (incluida la vacía) |
_ |
un carácter exactamente |
SELECT * FROM productos WHERE nombre LIKE 'A%'; -- empieza por A
SELECT * FROM productos WHERE nombre LIKE '%or'; -- termina en "or"
SELECT * FROM productos WHERE nombre LIKE '%cro%'; -- contiene "cro"
SELECT * FROM productos WHERE nombre LIKE 'R_t__'; -- R + 1 + t + 2 = "Raton"
IS NULL / IS NOT NULL
NULL representa la ausencia de valor y es especial: no se compara con
=. Para detectarlo se usa IS NULL (o IS NOT NULL):
SELECT * FROM productos WHERE stock IS NULL; -- sin dato de stock
SELECT * FROM productos WHERE stock IS NOT NULL; -- con dato de stock
Ojo:
columna = NULLnunca es verdadero, ni siquiera para los nulos. SiempreIS NULL.