La Lenguaje de consulta estructurado (SQL) proporciona a los usuarios de bases de datos la capacidad de crear consultas personalizadas para extraer información de las bases de datos. En un artículo anterior, exploramos la extracción de información de una base de datos. usando consultas SQL SELECT. Ampliemos esa discusión y exploremos cómo puede realizar consultas para recuperar datos que coincide con condiciones específicas.
Consideremos un ejemplo basado en el uso común Viento del norte database, que con frecuencia se envía con productos de base de datos como tutorial.
Aquí hay un extracto de la tabla de productos de la base de datos:
ID del Producto | Nombre del producto | Identificación del proveedor | Cantidad por unidad | Precio unitario | Unidades en Stock |
---|---|---|---|---|---|
1 | Chai | 1 | 10 cajas x 20 bolsas | 18.00 | 39 |
2 | Chang | 1 | Botellas de 24 - 12 oz | 19.00 | 17 |
3 | Jarabe de anís | 1 | 12 botellas de 550 ml | 10.00 | 13 |
4 | Condimento Cajún del Chef Anton | 2 | 48 frascos de 6 oz | 22.00 | 53 |
5 | Mezcla de Gumbo del Chef Anton | 2 | 36 cajas | 21.35 | 0 |
6 | Crema de arándanos de la abuela | 3 | Tarros de 12 a 8 oz | 25.00 | 120 |
7 | Peras secas orgánicas del tío Bob | 3 | 12 - paquetes de 1 libra. | 30.00 | 15 |
Condiciones de contorno simples
Las primeras restricciones que colocaremos en nuestra consulta implican condiciones de contorno simples. Podemos especificarlos en la cláusula WHERE de la consulta SELECT, usando declaraciones de condición simples construidas con operadores estándar, como ,> = y <=.
Primero, intentemos una consulta simple que nos permite extraer una lista de todos los productos en la base de datos que tienen un UnitPrice de más de 20.00:
SELECCIONAR ProductName, UnitPrice
DESDE productos
DONDE Precio Unidad> 20.00
Esto produce una lista de cuatro productos, como se muestra a continuación:
ProductName UnitPrice
Mezcla de Gumbo del Chef Anton 21.35
Condimento Cajún del Chef Anton 22.00
Spread Boysenberry de la abuela 25.00
Peras secas orgánicas del tío Bob 30.00
También podemos usar la cláusula WHERE con valores de cadena. Básicamente, esto iguala los caracteres a los números, donde A representa el valor 1 y Z representa el valor 26. Por ejemplo, podríamos mostrar todos los productos con nombres que comiencen con U, V, W, X, Y o Z con la siguiente consulta:
SELECCIONAR ProductName
DESDE productos
DONDE ProductName> = 'T'
Que produce el resultado:
Nombre del producto
Peras secas orgánicas del tío Bob
Expresando rangos usando límites
La cláusula WHERE también nos permite implementar una condición de rango en un valor mediante el uso de múltiples condiciones. Por ejemplo, si quisiéramos tomar nuestra consulta anterior y limitar los resultados a productos con precios entre 15.00 y 20.00, podríamos usar la siguiente consulta:
SELECCIONAR ProductName, UnitPrice
DESDE productos
DONDE Precio Unidad> 15,00 Y Precio Unidad <20,00
Esto produce el resultado que se muestra a continuación:
ProductName UnitPrice
Chai 18.00
Chang 19.00
Expresando rangos con BETWEEN
SQL también proporciona un atajo ENTRE la sintaxis que reduce la cantidad de condiciones que necesitamos incluir y hace que la consulta sea más legible. Por ejemplo, en lugar de usar las dos condiciones WHERE anteriores, podríamos expresar la misma consulta como:
SELECCIONAR ProductName, UnitPrice
DESDE productos
DONDE Precio Unidad ENTRE 15.00 Y 20.00
Al igual que con nuestras otras cláusulas de condición, BETWEEN también funciona con valores de cadena. Si quisiéramos producir una lista de todos los países que comienzan con V, W o X, podríamos usar la consulta:
SELECCIONAR ProductName
DESDE productos
DONDE ProductName ENTRE "A" y "D"
Que produce el resultado:
Nombre del producto
Jarabe de anís
Chai
Chang
Mezcla de Gumbo del Chef Anton
Condimento Cajún del Chef Anton
La cláusula WHERE es una parte poderosa del lenguaje SQL que le permite restringir los resultados a valores que se encuentran dentro de rangos especificados. Se utiliza con mucha frecuencia para ayudar a expresar la lógica empresarial y debería formar parte del conjunto de herramientas de todos los profesionales de bases de datos. A menudo es útil incorporar cláusulas comunes en un procedimiento almacenado para que sea accesible para quienes no tienen conocimientos de SQL.