Selecció de dades dins dels intervals en SQL

Presentar la clàusula WHERE i la condició ENTRE

El llenguatge de consulta estructurada (SQL) proporciona als usuaris de bases de dades la capacitat de crear consultes personalitzades per extreure informació de bases de dades. En un article anterior, es va explorar l' extracció d'informació d'una base de dades mitjançant consultes SQL SELECT . Anem a ampliar aquesta discussió i exploreu com podeu realitzar consultes avançades per recuperar dades que coincideixin amb condicions específiques.

Anem a considerar un exemple basat en la base de dades Northwind d'ús comú, que sovint s'inclou amb productes de base de dades com a tutorial.

A continuació s'explica un extracte de la taula de productes de la base de dades:

Taula del producte
ProductID Nom del producte SupplierID QuantityPerUnit Preu unitari UnitsInStock
1 Chai 1 10 caixes x 20 bosses 18.00 39
2 Chang 1 Ampolles de 24 a 12 oz 19.00 17
3 Xarop anisat 1 12 ampolles de 550 ml 10.00 13
4 Chef Anton's Cajun Seasoning 2 48 - pots de 6 oz 22.00 53
5 Chef Anton's Gumbo Mix 2 36 caixes 21.35 0
6 Ànim de Boysenberry Spread 3 12 - pots de 8 oz 25.00 120
7 Pears seques orgàniques del tio Bob 3 12 - 1 lb pkgs. 30.00 15

Condicions límit simples

Les primeres restriccions que posem en la nostra consulta impliquen condicions de frontera simples. Podem especificar-los a la clàusula WHERE de la consulta SELECT, utilitzant instruccions de condició simples construïdes amb operadors estàndard, com ara <,>,> = i <=.


En primer lloc, intentem una consulta senzilla que ens permeti extreure una llista de tots els productes de la base de dades que tenen un preu unitari de més de 20,00:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 20.00

Això produeix una llista de quatre productes, com es mostra a continuació:

ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun Seasoning 22.00 Supernova Boysenberry Spread 25.00 Tia Bob's Orgànica Peres Secs 30.00

També podem utilitzar la clàusula WHERE amb valors de cadena. Això bàsicament equival a caràcters amb números, amb A que representa el valor 1 i Z que representen el valor 26. Per exemple, podríem mostrar tots els productes amb noms que comencin per U, V, W, X, Y o Z amb la següent consulta:

SELECT ProductName FROM PRODUCTES WHERE ProductName> = 'T'

Que produeix el resultat:

ProductName ------- Peres secs orgàniques d'oncle Bob

Expressió de rangs utilitzant límits

La clàusula WHERE també ens permet implementar una condició de rang en un valor mitjançant diverses condicions. Per exemple, si volíem fer la nostra consulta anterior i limitar els resultats als productes amb preus entre les 15:00 i les 20:00, podríem utilitzar la següent consulta:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice> 15.00 AND UnitPrice <20.00

Això produeix el resultat que es mostra a continuació:

ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00

S'estan mostrant els intervals entre ENTRE

SQL també proporciona una drecera entre la sintaxi que redueix la quantitat de condicions que necessitem incloure i fa que la consulta sigui més llegible. Per exemple, en lloc d'utilitzar les dues condicions WHERE anteriors, podríem expressar la mateixa consulta que:

SELECT ProductName, UnitPrice FROM products WHERE UnitPrice entre 15.00 i 20.00

Igual que amb les nostres clàusules d'altres condicions, ENTREVIA també funciona amb valors de cadena. Si volíem produir una llista de tots els països que comencessin amb V, W o X, podríem utilitzar la consulta:

SELECT ProductName FROM products WHERE ProductName ENTRE "A" i "D"

Que produeix el resultat:

ProductName ------- Xarop d'anís Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun Seasoning

La clàusula WHERE és una part potent del llenguatge SQL que permet restringir els resultats a valors que pertanyen als intervals especificats. S'utilitza molt sovint per ajudar a expressar la lògica empresarial i hauria de formar part del conjunt d'eines de cada professional de la base de dades.

Sovint és útil incorporar clàusules comunes a un procediment emmagatzemat per fer-lo accessible a aquells que no tenen coneixement de SQL.