Dominar el comando SELECT en SQL es fundamental porque se trata de la instrucción más ejecutada en cualquier base de datos relacional. Saber elegir columnas específicas, filtrar con precisión y ordenar resultados correctamente marca la diferencia entre una consulta útil y una que devuelve datos innecesarios. A continuación se explican las formas principales de construir consultas eficientes desde cero.
¿Cómo funciona SELECT con FROM y el asterisco?
La estructura básica de toda consulta parte de dos palabras clave inseparables: SELECT y FROM [0:28]. SELECT indica qué se quiere obtener, mientras que FROM señala desde dónde se obtiene, es decir, la tabla sobre la cual se realiza la consulta.
- Cuando se coloca el asterisco (*) entre SELECT y FROM, se seleccionan todas las columnas de la tabla.
- Después de FROM se escribe el nombre de la tabla, por ejemplo
clientes.
- Se puede agregar LIMIT seguido de un número para restringir la cantidad de filas devueltas [1:05].
Si en lugar de traer todo se necesitan campos puntuales, basta con escribir los nombres de las columnas separados por coma: SELECT nombre, email, activo FROM clientes LIMIT 10; [1:30]. De esta manera solo se obtienen las columnas solicitadas, dejando fuera datos como el teléfono.
¿Qué formas de filtrar con WHERE existen en SQL?
El verdadero poder de una consulta aparece cuando se filtran los resultados con la cláusula WHERE [2:20]. Existen múltiples maneras de aplicar este filtro.
¿Cómo filtrar por condición simple y comparador numérico?
Una condición simple evalúa un campo contra un valor específico. Por ejemplo: SELECT nombre, email FROM clientes WHERE activo = true; devuelve únicamente los clientes cuyo campo activo es verdadero [2:35].
Con un comparador numérico se pueden buscar registros que superen cierto umbral: WHERE precio > 100 retorna solo los productos cuyo precio es estrictamente mayor a cien [3:15].
¿Cómo usar BETWEEN, IN y LIKE para búsquedas avanzadas?
- BETWEEN permite definir un rango. La consulta
WHERE precio BETWEEN 50 AND 200 devuelve productos cuyo precio se encuentra entre cincuenta y doscientos [3:45].
- IN trabaja con una lista de valores. Al escribir
WHERE codigo IN ('CHL', 'ARG', 'COL') se obtienen únicamente los países cuyo código coincida con alguno de esos tres elementos [4:15].
- LIKE combinado con el carácter porcentaje (%) permite búsquedas parciales en campos de texto [4:55]. Si se escribe
WHERE nombre LIKE 'Mar%', se obtienen todos los registros cuyo nombre inicie con "Mar". Si se invierte la posición del porcentaje, como en WHERE email LIKE '%@gmail.com', se filtran los correos que terminen con @gmail.com [5:40].
¿Qué significan IS NULL e IS NOT NULL?
Cuando un campo no tiene valor asignado, se considera nulo. Con WHERE telefono IS NULL se obtienen los registros sin teléfono, mientras que WHERE telefono IS NOT NULL devuelve solo los que sí tienen dato en ese campo [6:30].
¿Cómo combinar lógica, ordenar resultados y usar alias?
La lógica booleana permite combinar condiciones dentro del WHERE [7:10]:
- AND exige que se cumplan todas las condiciones simultáneamente. Por ejemplo:
WHERE precio > 50 AND stock > 0 devuelve productos con precio superior a cincuenta y stock disponible.
- OR requiere que se cumpla al menos una condición.
WHERE codigo = 'CHL' OR codigo = 'ARG' retorna registros que coincidan con cualquiera de los dos códigos [7:45].
- NOT invierte la lógica de la condición.
WHERE NOT activo = false devuelve los registros donde activo es verdadero [8:20].
Para ordenar resultados se utiliza ORDER BY seguido del nombre de la columna y la dirección: DESC para orden descendente (de mayor a menor) o ASC para ascendente (de menor a mayor) [9:05]. Por ejemplo, ORDER BY precio DESC muestra primero el producto más caro.
Finalmente, los alias con la palabra clave AS permiten personalizar el nombre de las columnas en el resultado sin modificar la estructura de la tabla [9:40]. SELECT nombre AS cliente, email AS correo_electronico, activo AS vigente muestra encabezados más legibles.
El desafío propuesto es construir tres consultas sobre los datos existentes, aplicar WHERE para filtrar, ordenar de forma ascendente con ORDER BY y compartir los resultados en la caja de comentarios. ¿Cuáles fueron tus consultas?