2. LENGUAJE DE MANIPULACIÓN DE DATOS (DML, DATA MANAGEMENT LANGUAGE).

2.7. CINCO FORMAS DE FILTRAR DATOS CON LA CLÁUSULA WHERE EN SQL

En los últimos tutoriales hemos explorado diferentes maneras de filtrar datos en SQL. A continuación, presentamos un resumen de los conceptos aprendidos:

  • 1. WHERE: Permite filtrar filas en función de una o varias condiciones específicas.
  • 2. AND y OR: Facilitan la combinación de múltiples condiciones en una misma consulta.
  • 3. BETWEEN: Permite filtrar datos dentro de un rango de valores, incluyendo los límites.
  • 4. IN: Filtra registros que coinciden con uno o varios valores definidos en una lista.
  • 5. LIKE: Permite buscar patrones en columnas de tipo texto mediante el uso de comodines.

Tabla de operadores comunes para filtrar datos en SQL

Operador Definición Ejemplo en consulta Interpretación
= Igual a user_id = 2 El user_id es igual a 2
!= Distinto de user_id != 5 El user_id no es igual a 5
<, > Menor que / Mayor que age < 5 La edad es menor que 5
<=, >= Menor o igual / Mayor o igual age >= 2 La edad es mayor o igual a 2
BETWEEN ... AND ... Dentro de un rango (inclusive) pushups BETWEEN 20 AND 40 Las flexiones están entre 20 y 40 (inclusive)
IN (...) Coincidencia con una lista de valores first_name IN ('Bob', 'Ann', 'Joe') El primer nombre es Bob, Ann o Joe
LIKE Coincidencia con un patrón en texto first_name LIKE 'Jo%' El primer nombre empieza con “Jo”

Ejercicio práctico: Filtrado de datos en SQL

Contexto:

Dispones de una tabla con 1.000 registros de clientes pertenecientes a una pequeña empresa en Australia. Necesitas extraer información específica utilizando varios de los operadores estudiados.

Requerimiento:

Escribe una consulta SQL que obtenga todos los clientes que cumplan con estas condiciones:

  • Edad entre 18 y 22 años (inclusive).
  • Residencia en los estados Victoria, Tasmania o Queensland.
  • Su género no sea “n/a”.
  • Su nombre comience con la letra ‘A’ o ‘B’.

Datos de ejemplo de la tabla customers:

clie_id clie_nombre clie_genero clie_edad clie_codigopostal clie_ciudad clie_estadociudad
1 Ignacio Perez Masculino 30 5464 Barranquilla Atlántico
2 Graciela Espriella Femenino 69 8223 Cartagena Bolívar
3 Elberth Lopez Masculino 59 5661 Santa Marta Magdalena

Consulta esperada:

SELECT * FROM customers
WHERE age BETWEEN 18
AND 22
AND state IN ('Victoria', 'Tasmania', 'Queensland')
AND gender != 'n/a'
AND (customer_name LIKE 'A%' OR customer_name LIKE 'B%');


Salida esperada:

clie_id clie_nombre clie_genero clie_edad clie_codigopostal clie_ciudad clie_estadociudad
123 Aidan Goseling Female 22 1149 Jordanborough Tasmania
402 Bertrando Melonby Femenino 22 1712 West Cooper Tasmania
692 Bertrando Melonby Male 20 4058 Laraview Tasmania
900 Audrie Frotton Femenino 22 9455 Emily East Tasmania

Ejercicio de práctica de SQL FILTROS

Problema de la práctica

Encuentre clientes que coincidan con multiples limitaciones de edad, estado, género y nombre.

Ejercicio #1

Contexto: Filtrado avanzado de clientes – TechStore

La empresa TechStore cuenta con una base de datos de 1.000 clientes que incluye información personal y de ubicación. El equipo de marketing necesita segmentar clientes jóvenes de ciertas regiones para una campaña promocional.

Requerimiento:

Escribe una consulta SQL que obtenga todos los clientes que cumplan las siguientes condiciones:

1. Edad entre 18 y 22 años (inclusive).

2. Residan en los estados de Victoria, Tasmania o Queensland.

3. Su género no sea “n/a”.

4. Su nombre comience con la letra ‘A’ o ‘B’.

Estructura de la tabla:

columna tipodato
clie_id INTEGER
clie_nombre TEXT
clie_genero TEXT
clie_edad INT
clie_codigopostal INT
clie_ciudad TEXT
clie_estadociudad TEXT

Datos de ejemplo:

clie_id clie_nombre clie_genero clie_edad clie_codigopostal clie_ciudad clie_estadociudad
1 Ignacio Perez Masculino 30 5464 Barranquilla Atlántico
2 Graciela Espriella Femenino 69 8223 Cartagena Bolívar
3 Elberth Lopez Masculino 59 5661 Santa Marta Magdalena


-------------------------------------------------------------------------------------------------------------

SIGUIENTE - ORDER BY