Archivo de etiquetas registros

PorLucía Montero Rodríguez

SQL: consultas de selección con criterios

En el artículo Primeros pasos con SQL  vimos la forma más básica de crear una consulta utilizando este lenguaje. Ahora vamos a restringir el ámbito de selección de registros estableciendo para ello distintas condiciones.

La instrucción WHERE

Esta orden es la que debemos emplear en conjunción con las anteriores para indicar qué registros nos interesa visualizar.

Utilizando nuestra ya conocida base de datos librería, vamos a escribir una consulta que muestre el Código, Título y Precio de todos los libros con un importe inferior a 25 euros, ordenados de mayor a menor.

La solución será la siguiente, y para ver el resultado pulsa Ejecutar en la cinta contextual Diseño:

SELECT codlibro, titulo, precio

FROM libros

WHERE precio<25

ORDER BY precio DESC;

Tras ejecutarla, el resultado que obtengas debería ser similar al que ahora puedes ver en la figura:

Resultado de consulta SQL con criterio simple

El orden de los factores sí altera el producto final en SQL

Debes tener en cuenta el orden en el que figuran las instrucciones ya que es fundamental mantenerlo para que no se produzcan errores. Fíjate en los distintos pasos:

  1. indicar los campos a mostrar,
  2. especificar las tablas de las que proceden,
  3. establecer las condiciones y,
  4. asignar los criterios de ordenación.

Criterios múltiples

Si sólo pudiéramos establecer condiciones simples, SQL no sería de mucha ayuda. Afortunadamente podemos indicar varios criterios, combinándolos en una única orden WHERE. Por ejemplo, vamos a realizar una variación de la consulta anterior, para que ahora aparezcan los libros cuyo precio se sitúe entre 10 y 30 euros.

Podríamos emplear cualquiera de estas opciones:

SELECT codlibro, titulo, precio

FROM libros

WHERE precio BETWEEN 10 AND 30

ORDER BY precio DESC;

SELECT codlibro, titulo, precio

FROM libros

WHERE (precio >= 10) AND (precio <= 30)

ORDER BY precio DESC;

El resultado es el mismo en ambos casos: 5 registros, pero si te fijas bien hay diferencias a la hora de escribir la instrucción. Con el criterio BETWEEN sólo se indica una vez el nombre del campo. Esto es así porque SQL lo toma como una única condición. En el segundo caso, es necesario especificar los distintos filtros de manera independiente, es decir, cada uno con su nombre de campo y su juego de paréntesis.

De momento, esto es todo; en la siguiente entrada dedicada a SQL, veremos cómo mostrar/utilizar campos situados en tablas distintas.