Crear consultes amb criteris avançats


A part dels tipus de consultes que hem anat estudiant en els pràctiques anteriors ens queda encara tot un món de possibilitats en introduir criteris avançats en la creació i execució de consultes.

En aquesta darrera pràctica farem referència a alguns d’aquests tipus:

  • Consultes de cerca de duplicats.
  • Consultes de no coincidents.
  • Consultes amb comodins.
  • Consultes amb paràmetres.
  • El llenguatge SQL.

Continuem amb la base de dades de treball biblioteca_m5.mbd, i en la finestra d’objectes Consultes per realitzar les pràctiques següents.

Consultes de cerca de duplicats.

Aquesta consulta el que fa és cercar dades que es repeteixin en una taula. Ens pot servir per fer neteges de registres que estiguin duplicats producte del treball quotidià i ens pot anar molt bé per esborrar registres duplicats.

En primer lloc, anem a la taula Llengua i provoquem una errada: afegim un nou registre que li diem codi: ca i descripció Català. Això farà que a la taula llengua hi hagi dos cops la descripció “català”, però amb diferent codi: “cat” i “ca”, tal com mostra la imatge:



Per iniciar el procés de creació, haurem d'anar a Crear, Assistent de consultes:



Aquesta opció posa en marxa un assistent que ens anirà guiant al llarg de tot el procés.

En aquesta pantalla triem la taula Llengua per fer la consulta. Continuem endavant.



Marquem el camp on ha de fer la cerca per trobar continguts repetits i continuem endavant.



A la següent pantalla només caldrà dir-li quins camps volem veure a la resposta juntament amb el camp repetit. En aquest cas li diem que tots (només hi ha un altre camp més):



Tenim el quadre per donar nom a la consulta Duplicats per llengua,



Quan l'executem en podrem veure el contingut esperat:



I si la volem veure en mode disseny, podrem apreciar l'ordre que hi ha al darrera de totes les accions que acabem de fer:



Consulta de cerca de no coincidents.

Es tracta de saber si hi ha algun registre en una taula que té relació amb una altra que no estigui relacionat. Per exemple, cercar registres de la taula Llibres que no s'hagin prestat mai (que no figurin a la taula préstecs), o autors que figurin a la taula Autors que no tinguin cap llibre assignat, etc.

L'exemple que posarem en pràctica serà cercar les modalitats de llengües que no tinguin cap llibre assignat a la nostra base de dades.

Iniciem el procés amb Crear, Assistent de consultes,



Seleccionem la taula Llengua a la pantalla de l’assistent,



Ens demana en quina altra taula hi ha el camp relacionat, assenyalem Llibres,



Triem els camps codi i llengua, confirmem quins camps estan relacionats entre les dues taules i seguim endavant,



Triem quins campos volem que apareixin a la consulta, els marquem,



Donem nom a la consulta, Llengua no coincidents amb Llibres, obtenint el resultat següent,



Observem el disseny de consulta,



Podem apreciar que ens ha col•locat dues coses d'interès: el criteri Es Nulo i ens ha convertit la relació entre les dues taules en una modalitat 2, com la que veiem a la següent imatge. Hi podem accedir si fem un doble clic a la fletxa de la relació:



Normalment a les relacions l'opció 1 és la que el programa assigna per defecte, però en aquest cas és obligat posar-hi aquesta segona opció i el mateix programa ens l'ha col•locada.

Consultes amb comodins

Quan posar els criteris a les consultes podem escriure'ls tot el contingut que volem sencer o mitjançant la utilització de caràcters comodí, amb la qual cosa, només caldrà escriure'n una part.

Per tant amb l'ús dels comodins podrem fer consultes més àmplies i útils. Els caràcters comodí del Microsoft Access 2010 són els asteriscs: (*) i d'altres com els interrogants (?).

Així en fem una prova senzilla: una consulta amb un comodí semblant a *forma* ens tornarà de resposta tant formacion com forma . Ho veiem a les següents imatges:



I el seu resultat:



Com podem veure el mateix programa ens ha transformat el criteri en: Como “*forma*”. En podem fer més variants del mateix fent ús de ??. Per exemple Como “*fo??a*” ens retornaria formacion, informacion, formadors, etc.

Desem la consulta com a Consulta comodins

Consultes amb paràmetres

El següent concepte, que ja ha sortit en pràctiques anteriors, és l'anomenat paràmetre. El paràmetre ens dóna moltes possibilitats doncs una sola consulta ens pot servir per múltiples preguntes diferents amb la peculiaritat que en el moment d'executar-se ens permet escriure el criteri.

Físicament es fa mitjançant l'ús dels caràcters [ i ]. Qualsevol paraula que posem dins d'aquests caràcters ens apareixerà després en forma de finestra emergent i ens validarà el contingut que posem per teclat a la finestra emergent com si fos escrita en el camp de criteri.

Veiem-ne un exemple:

Aquest disseny de criteri amb paràmetre, ens demana que omplim aquesta finestra emergent, i quan escrivim el criteri, per exemple El Quixot



La resposta a aquesta consulta és,



Si la tornem a executar i posen enlloc de “El Quixot", per exemple “Estadísitca”, el resultat serà:



Però el que fa més interessant els paràmetres és la seva combinació amb els comodins.

Així, si provem l’ordre, Como “*” & [Introdueix el titol] & “*” , com tenim en la consulta en vista Disseny, ens ofereix unes possibilitats molt completes



Introduïm en el quadre de títol “Diccionari” i obtindrem per resposta tots els títols en que hi hagi la paraula “Diccionari”, ens donarà com a resposta el següent,



Per tant, aquesta combinació és la que ens dóna més joc de cara a fer les consultes més completes.

Desem aquesta consulta com a Consulta paràmetres.

El llenguatge SQL

El llenguatge SQL és un estàndard dins de la programació amb bases de dades. La majoria dels programes gestors de bases de dades treballen amb aquest tipus de llenguatge.

De fet el mateix Microsoft Access 2010 per sota de l'entorn visual amb el qual treballem i que el fa molt amable, hi ha aquest llenguatge. De fet els experts en bases de dades treballen directament a l'anomenada finestra SQL.

En aquest curs queda fora de lloc treballar-hi, però el que sí que pot ser interessant és visualitzar vàries de les consultes que tenim fetes des de la finestra SQL.

Per accedir-hi, hem d'anar al disseny de la consulta, i accedir al botó de Vista SQL tal com s'indica a la següent imatge que es correspon a la consulta paràmetre, realitzada en l´apartat anterior:



I el resultat de la mateixa serà:



Podem veure'n unes quantes i comprovar que en totes elles s'han generat el codi SQL.

En el cas de la consulta de referències creuades de l’exemple del pràctica anterior, el codi SQL generat queda de la forma següent;



En finalitzar el treball, desem la base de dades amb el nom biblioteca_m5.accbd