1.7. Consultas básicas en las tablas
Las bases de datos son herramientas excepcionalmente útiles para consultar información y extraer nuevo conocimiento. En este sentido, los esquemas entidad-relación no son una excepción. Más bien al contrario, utilizando el álgebra relacional es posible consultar el contenido de las tablas de múltiples formas. Básicamente, las consultas SQL (en inglés, queries) consisten en filtros que delimitan el segmento del conjunto completo de los registros de una o más tablas en el cual estamos interesados, para mostrar después el valor de sus atributos.
La instrucción SELECT implementa el proceso de consulta sobre las tablas, mostrando los atributos indicados para aquellos registros que cumplen una determinada condición.
Podéis encontrar información sobre el uso del terminal para llevar a cabo operaciones similares sobre ficheros de texto en el módulo «El entorno de trabajo UNIX».
Vamos a explorar en los próximos subapartados cómo enriquecer nuestras consultas, empleando para ello nuestro catálogo de genes, que está almacenado en la base de datos catalogo. Antes de hacer consultas más elaboradas, mostramos a continuación la forma más sencilla de realizar una consulta.
La consulta más habitual consiste en mostrar el contenido completo de una tabla. El carácter *, precisamente, indica que deseamos visualizar el listado íntegro de los valores de todos los atributos para el subconjunto de registros seleccionados. Para poner en práctica este comando sobre nuestro catálogo, seleccionamos todos los valores de cada instancia guardada en la tabla genes:
Para evitar el exceso de información, el usuario puede seleccionar los atributos o campos de los registros de una tabla que desea ver por pantalla. Simplemente sustituyendo en la pregunta el símbolo * por un listado de atributos, separados por comas, podemos delimitar la vista de los registros, en este caso genes que obtenemos como resultado:
El recuento del número de registros que cumple una condición concreta es una de las consultas más frecuentes en SQL. En este caso es suficiente con añadir la función COUNT
a la consulta que estemos realizando para contabilizar el número de líneas de la salida:
La función DISTINCT
elimina los resultados duplicados. Por ejemplo, si deseamos contar el número de organismos en nuestra tabla genes, podemos combinar las funciones COUNT
y DISTINCT
sobre el atributo especies del siguiente modo:
El comando ORDER BY
ordena la lista de resultados producida por un comando SELECT
, de forma ascendente o descendente (según si añadimos la cláusula ASC
o DESC
, respectivamente). En la próxima figura ordenamos los genes por su posición en cada cromosoma o por su nombre, de distintas maneras:
Cuando se trabaja con tablas que contienen miles de elementos, resulta conveniente mostrar inicialmente solo los primeros registros para comprobar el correcto funcionamiento de la consulta. La función LIMIT
permite mostrar exclusivamente los primeros n registros de la consulta en ejecución: