SELECT i FROM

Índex

 

Criteris de consulta

El llenguatge SQL permet establir els criteris de la consulta. Si la consulta es fa sobre una sola taula, hi ha quatre eines fonamentals:

SELECT Quins camps volem veure?
FROM De quina taula procedeixen?
WHERE Quina condició han de complir les dades d'un registre per a fer-lo visible?
ORDER BY Com s'han d'ordenar els registres presentats?

Associades a aquestes hi ha altres eines complementàries, que anirem afegint en els apartats següents.

 

Designació dels elements

En les consultes SQL

En Access, però, es prescindeix de les dobles cometes, i si el nom del camp és compost, cal tancar-lo entre claudàtors.

La gran majoria dels exemples s'han fet amb el Base de LibreOffice; quan no és així, ho advertim.

 

SELECT i FROM

Partim de la taula "Socis", el contingut de la qual és el següent:

captura

Amb SELECT indiquem el nom del camp (o dels camps) que volem presentar, i amb FROM, la taula de procedència.

Si volem veure només un camp, n'indiquem el nom, entre dobles cometes; si en volem dos o més, els indiquem de la mateixa manera, separats per una coma, i en l'ordre que desitgem, que no cal que sigui el de la taula.

SELECT "Cognom","Nom", "Telf" FROM "Socis"

Això equival a dir: Presenta'ns el Cognom seguit del Nom i del camp "Telf" que hi ha en els registres de la taula Socis.

En absència de més especificacions, el resultat serà anàleg al següent:

#

Si volem veure tots els camps, ens podem estalviar d'enumerar-los fent servir el comodí '*'; per exemple:

SELECT * FROM "Socis"

que equival a dir: Presenta'ns tots els camps que hi ha en els registres de la taula Socis.

En absència de més especificacions, el resultat serà com aquest:

#

Notem que en tots dos exemples se'ns presenten tots els registres de la taula; per a triar-ne uns i no altres, ens caldrà la clàusula WHERE.

 

AS

Algunes vegades voldrem que en una consulta es mostri un nom de camp diferent del que ha rebut en crear la taula; d'això se'n diu posar un àlies al camp. Per exemple, trobem que 'N_Soci' és un text massa llarg per encapçalar el que esperem trobar-hi a sota, que és només un número, de manera que preferim abreujar-ho amb 'NS'. I, en canvi, preferim que els números de telèfon estiguin encapçalats per la paraula Telèfon, amb totes les lletres. Totes dues coses s'aconsegueixen amb la indicació AS:

"nom-en-la-taula" AS "nom-en-la-consulta"

Retoquem la darrera consulta; la nova versió és

SELECT "N_Soci" AS "NS", "Nom", "Cognom", "Telf" AS "Telèfon"
FROM "Socis"

Això dona una versió més amigable de la mateixa consulta darrera

#

Com és lògic, la tria 'SELECT *' fa impossible aquesta opció.

En alguns programes es pot prescindir d'AS:

... "Taula"."Camps" "Àlies"

equival a

... "Taula"."Camps" AS "Àlies"

 

SELECT DISTINCT

Molt sovint els camps que no són clau presenten valor repetits, i ens interessa obtenir només la llista dels valors diferents. En aquest cas farem servir

SELECT DISTINCT "nom-de-camp"

(En Access de Microsoft, DISTINCTROWS)

Aplicat al camp "Cognom" de la mateixa taula "Socis" dels exemples anteriors i ordenat per "Cognom", dona aquest resultat

#

Cal notar que abans el cognom 'Vendrell' apareixia dues vegades, però ara només una, que és just el que preteníem.