El lenguaje de consulta estructurado (SQL) proporciona a los usuarios de bases de datos la capacidad de crear consultas personalizadas para extraer información de bases de datos. En un artículo anterior, exploramos la extracción de información de una base de datos utilizando consultas SQL SELECT. Let & amp; apos; s amplía esa discusión y explora cómo puedes realizar consultas avanzadas para recuperar datos que coincidan con condiciones específicas.
Let & amp; apos; s considera un ejemplo basado en & amp; amp; nbsp; the comúnmente usado & amp; amp; nbsp; Northwind & amp; amp; nbsp; database, que frecuentemente se envía con productos de bases de datos como tutorial.
Video destacado
Aquí y amp; apos; s un extracto de la base de datos & amp; apos; s Producto & amp; amp; nbsp; table: & amp; amp; nbsp;
ID de producto
Nombre del producto
SupplierID
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 a 12 oz
19.00
17)
3)
Jarabe de anís
1)
Botellas de 12 a 550 ml
10.00
13)
4)
Chef Anton & amp; apos; s Cajun Seasoning
2)
48 – 6 oz de frascos
22.00
53)
5)
Chef Anton & amp; apos; s Gumbo Mix
2)
36 cajas
21,35
0
6)
Abuela y amp; apos; s Boysenberry Spread
3)
12 – 8 oz de frascos
25.00
120)
7)
Tío Bob y amp; pares; s Peras secas orgánicas
3)
12 – 1 lb pkgs.
30.00
15
Tabla de productos
Condiciones límite simples
Las primeras restricciones que colocaremos en nuestra consulta implican condiciones de límite simples. Podemos especificarlos en la cláusula WHERE de la consulta SELECT, utilizando declaraciones de condición simples construidas con operadores estándar, como & amp; lt;, & amp; gt;, & amp; gt; = y & amp; lt; =.
Primero, intentemos una consulta simple que nos permita extraer una lista de todos los productos y amp; nbsp; en la base de datos que tiene un Precio unitario de más de 20.00:
& lt; pre & gt; SELECT ProductName, UnitPrice & lt; br & gt ;
DE productos & lt; br & gt ;
DONDE UnitPrice & amp; gt; 20.00 & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
Esto produce una lista de cuatro & amp; amp; nbsp; products, como se muestra a continuación:
& lt; pre & gt; ProductName UnitPrice & lt; br & gt ;
——- ——- & lt; br & gt ;
Chef Anton & amp; apos; s Gumbo Mix 21.35 & lt; br & gt ;
Chef Anton & amp; apos; s Cajun Seasoning 22.00 & lt; br & gt ;
Grandma & amp; apos; s Boysenberry Spread 25.00 & lt; br & gt ;
Tío Bob & amp; apos; s Orgánica de peras secas & amp; amp; nbsp; 30.00 & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt;
También podemos usar la cláusula WHERE con valores de cadena. Básicamente, esto equivale a caracteres a números, con A que representa el valor 1 y Z que representa el valor 26. Por ejemplo, podríamos mostrar todos los productos con nombres que comiencen con U, V, W, X, Y & amp; nbsp; o Z con la siguiente consulta:
& lt; pre & gt; SELECT ProductName & lt; br & gt ;
DE productos & lt; br & gt ;
DONDE ProductName & amp; gt; = & amp; apos; T & amp; apos; & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
Que produce el resultado:
& lt; pre & gt; ProductName & lt; br & gt ;
——- & lt; br & gt ;
Tío Bob & amp; apos; s Orgánica de peras secas & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
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 llevar nuestra consulta arriba y limitar los resultados a productos & amp; amp; nbsp; con precios entre 15.00 y 20.00, podríamos usar la siguiente consulta:
& lt; pre & gt; SELECT ProductName, UnitPrice & lt; br & gt ;
DE productos & lt; br & gt ;
DONDE UnitPrice & amp; gt; 15.00 Y UnitPrice & amp; lt; 20.00 & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
Esto produce el resultado que se muestra a continuación:
& lt; pre & gt; ProductName UnitPrice & lt; br & gt ;
——- ——- & lt; br & gt ;
Chai 18.00 & lt; br & gt ;
Chang 19.00 & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
Expresando rangos con ENTRE
SQL también proporciona una sintaxis de acceso directo ENTRE 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 que:
& lt; pre & gt; SELECT ProductName, UnitPrice & lt; br & gt ;
DE productos & lt; br & gt ;
DONDE UnitPrice ENTRE 15.00 Y 20.00 & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
Al igual que con nuestras otras cláusulas de condición, ENTRE funciona también 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:
& lt; pre & gt; SELECT ProductName & lt; br & gt ;
DE productos & lt; br & gt ;
DONDE ProductName ENTRE & amp; quot; A & amp; quot; y & amp; quot; D & amp; quot; & lt; / br & gt; & lt; / br & gt; & lt; / pre & gt ;
Que produce el resultado:
& lt; pre & gt; ProductName & lt; br & gt ;
——- & lt; br & gt ;
Jarabe de anís & lt; br & gt ;
Chai & lt; br & gt ;
Chang & lt; br & gt ;
Chef Anton & amp; apos; s Gumbo Mix & lt; br & gt ;
Chef Anton & amp; apos; s Cajun Seasoning & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; / br & gt; & lt; & lt; / br & gt; & lt; / pre & gt;
La cláusula WHERE es una parte poderosa del lenguaje SQL que le permite restringir los resultados a valores que caen dentro de rangos especificados. Se usa muy comúnmente para ayudar a expresar la lógica empresarial y debe ser parte de cada kit de herramientas de la base de datos profesional y de Apos; s. A menudo es útil incorporar cláusulas comunes en un procedimiento almacenado para que sea accesible para aquellos sin conocimiento de SQL.
& amp; # x203A; Informática