1. Bases de dades relacionals

1.7. Consultes bàsiques a les taules

Les bases de dades són eines excepcionalment útils per consultar informació i extreure nou coneixement. En aquest sentit, els esquemes entitat-relació no són una excepció. Més aviat al contrari, utilitzant l’àlgebra relacional és possible consultar el contingut de les taules de múltiples formes. Bàsicament, les consultes SQL (en anglès, queries) consisteixen en filtres que delimiten el segment del conjunt complet dels registres d’una o més taules en el qual estem interessats, per mostrar després el valor dels seus atributs.

La instrucció SELECT implementa el procés de consulta sobre les taules, mostrant els atributs indicats per a aquells registres que compleixen una determinada condició.

Anem a explorar en els pròxims anys com enriquir les nostres consultes, utilitzant per a això el nostre catàleg de gens, que està emmagatzemat en la base de dades cataleg. Abans de fer consultes més elaborades, mostrem a continuació la forma més senzilla de realitzar una consulta.

Figura 23. Sintaxi bàsica de l’ordre SELECT.
Font: elaboració pròpia.

La consulta més habitual consisteix a mostrar el contingut complet d’una taula. El caràcter *, precisament, indica que desitgem visualitzar el llistat íntegre dels valors de tots els atributs per al subconjunt de registres seleccionats. Per posar en pràctica aquesta ordre sobre el nostre catàleg, seleccionem tots els valors de cada instància guardada a la taula gens:

Figura 24. Mostrant el contingut íntegre de la taula gens.
Font: elaboració pròpia.

Per evitar l’excés d’informació, l’usuari pot seleccionar els atributs o camps dels registres d’una taula que desitja veure per pantalla. Simplement substituint en la pregunta el símbol * per un llistat d’atributs, separats per comes, podem delimitar la vista dels registres, en aquest cas gens que obtenim com a resultat:

Figura 25. Mostrant els valors d’alguns atributs de la taula gens.
Font: elaboració pròpia.

El recompte del nombre de registres que compleix una condició concreta és una de les consultes més freqüents en SQL. En aquest cas és suficient amb afegir la funció COUNT a la consulta que estem realitzant per comptabilitzar el nombre de línies de la sortida:

Figura 26. Comptant tots els registres de la taula gens.
Font: elaboració pròpia.

La funció DISTINCT elimina els resultats duplicats. Per exemple, si desitgem comptar el nombre d’organismes a la nostra taula gens, podem combinar les funcions COUNT i DISTINCT sobre l’atribut especie de la manera següent:

Figura 27. Comptant registres únics d’una taula.
Font: elaboració pròpia.

L’ordre ORDER BY ordena la llista de resultats produïda per una ordre SELECT, de forma ascendent o descendent (segons si hi afegim la clàusula ASC o DESC, respectivament). En la propera figura ordenem els gens per la seva posició en cada cromosoma o pel seu nom, de diferents maneres:

Figura 28. Ordenar els registres d’una taula.
Font: elaboració pròpia.

Quan es treballa amb taules que contenen milers d’elements, resulta convenient mostrar inicialment només els primers registres per comprovar el correcte funcionament de la consulta. La funció LIMIT permet mostrar exclusivament els primers n registres de la consulta en execució:

Figura 29. Mostrar un fragment de la consulta.
Font: elaboració pròpia.