Filtrado de Datos con WHERE en SQL

Clase 17 de 24Curso de Fundamentos de Bases de Datos

Resumen

Filtrar información efectiva y precisamente es esencial en SQL, especialmente cuando trabajas con grandes volúmenes de datos. El uso adecuado del comando WHERE puede hacer la diferencia entre consultar información relevante o perderse en resultados excesivos. Este contenido te muestra cómo utilizar el WHERE en tus consultas SQL para conseguir sólo los datos que realmente necesitas.

¿Qué es el WHERE y cómo funciona en SQL?

La cláusula WHERE en SQL permite especificar condiciones para seleccionar registros específicos en una base de datos. Cada registro o tupla sera evaluado individualmente, retornando únicamente aquellos que cumplan con las condiciones declaradas en el WHERE.

Las expresiones utilizadas en la cláusula WHERE tienen como resultado un valor booleano: true (verdadero) o false (falso). SQL revisará cada registro de acuerdo con estas condiciones, evaluándolas con precisión tupla por tupla.

¿Cómo se estructura una consulta con WHERE?

La estructura básica que puedes emplear es:

SELECT columna1, columna2
FROM tabla
WHERE condición;

Esta cláusula puede incluir operaciones lógicas como AND, OR, así como funciones sobre cadenas de texto, números y fechas.

¿Qué operadores puedes utilizar con el WHERE?

  • Operadores de comparación: =, >, <, >=, <=, !=.
  • Operadores lógicos: AND, OR, NOT.
  • Operadores especiales: LIKE, BETWEEN, IN, RAND().

¿Cómo utilizar el comando LIKE para encontrar patrones específicos?

Para buscar patrones específicos en cadenas de texto, MySQL ofrece la función LIKE acompañada de comodines (wildcards). Ejemplos útiles:

SELECT * FROM Clients WHERE Name LIKE 'Mr.%';

En este caso, SQL traerá todas las personas cuyo nombre empiece por "Mr.".

Si deseas buscar nombres con terminaciones específicas:

SELECT * FROM Clients WHERE Name LIKE '%III' OR Name LIKE '%IV';

También puedes buscar que una palabra específica aparezca en cualquier parte del nombre:

SELECT * FROM Clients WHERE Name LIKE '%Gibson%';

¿Cómo emplear el BETWEEN en rangos numéricos y fechas?

El operador BETWEEN permite especificar rangos tanto numéricos como fechas para filtrar:

SELECT * FROM Products WHERE Price BETWEEN 500 AND 700;

En el caso de las fechas:

SELECT * FROM bill_products
WHERE date_added BETWEEN '2024-09-24' AND '2024-09-30';

¿Puedes utilizar operadores lógicos avanzados para obtener selecciones complejas?

La estructura básica para combinar condiciones es usando AND y OR, logrando filtros más específicos:

SELECT * FROM bill_products
WHERE date_added BETWEEN '2024-09-24' AND '2024-09-30'
AND product_id IN (825, 500, 1986);

Esto permite combinaciones de filtros que aumentarán la precisión y utilidad de tus consultas.

¿Cómo cambiar la visualización de la consulta para registros extensos?

Para mejorar la visualización en registros extensos, sustituye el punto y coma que termina la consulta por \G, lo cual hace que los resultados se presenten verticalmente:

SELECT * FROM clients LIMIT 1\G

Esto facilita enormemente la lectura cuando las tablas tienen muchas columnas o datos.

Recuerda que practicar y experimentar directamente en una base de datos te ayudará a interiorizar estos conceptos. Te invitamos a probar con los archivos proporcionados para familiarizarte más con consultas SQL precisas.