CONSULTES DIVERSES. PRÀCTIQUES
NOTA: recordeu que aquestes pràctiques i exercicis, corresponents al tema voluntaris, NO SÓN OBLIGATÒRIES.
Aquestes pràctiques pretenen mostrar alguns detalls addicionals de l'Access per tal que els utilitzeu de la forma que cregueu oportuna.
- Pràctica 1: crear una consulta amb un camp derivat.
- A partir de les dades que hi ha als camps de les taules es poden obtenir valors derivats d'aquestes utilitzant els operadors i/o les funcions que incorpora Access (o, si s'escau, les funcions que pugui definir l'usuari). En aquesta pràctica veureu un exemple de camp derivat on s'introdueix una expressió derivada d'altres camps.
- Així, doncs, creeu una consulta on es mostraran totes les comarques que tinguin un tipus de vegetació entrat per teclat. Per exemple, si escriviu alzina, apareixeran totes les comarques que tenen aquest tipus de vegetació.
- Creeu una consulta nova i afegiu la taula Característiques comarques al disseny de la consulta.
- Afegiu a la consulta els camps que voleu usar a la consulta: NOM_COMARCA i VEGETACIÓ
- Modifiqueu la graella de la consulta fins que aparegui com aquesta:
.
- Observeu que hi ha un camp on hi ha una expressió que utilitza la funció pròpia d'Access:
EnCad(1;[VEGETACIÓ];[Quin tipus de vegetació?])
que serveix per comprovar si una cadena de caràcters és part d'una altra. En aquest cas, la funció verifica que el valor del paràmetre [Quin tipus de vegetació?], entrat per teclat, estigui dins del camp [VEGETACIÓ] i si és així, retorna un número diferent de 0. La funció retorna el valor 0 si no ha estat possible i un número, que correspon a la posició on l'ha trobat, en cas contrari. Executeu la consulta i comproveu els resultats. Deseu-la amb el nom: Consultes-Voluntari-Pràctica1
- ¿Qué es una expresión?
- EnCad
- Pràctica 2: crear una consulta on s'utilitzen funcions que afecten un conjunt de registres.
La consulta a crear consisteix en mostrar el nom de la comarca més extensa de Catalunya i la seva extensió.
Observeu que el camp EXTENSIÓ és numèric.
- Així doncs, creeu una consulta nova basada en la taula Característiques comarques.
- Els camps que intervenen a la consulta són: NOM_COMARCA i EXTENSIÓ. Heu d'afegir un camp derivat, tal com mostra el gràfic següent:
.
- La funció DMáx té dos arguments: "EXTENSIÓ" i "Característiques comarques" que utilitza per cercar a la taula Característiques comarques el valor màxim del camp EXTENSIÓ.
- El criteri [EXTENSIÓ] serveix per filtrar els registres. Observeu què succeeix si no poseu aquesta condició: apareixen totes les comarques i no pas la comarca que s'està cercant. Per observar aquesta circumstància activeu la casella Mostrar del camp derivat.
- Torneu a desactivar la casella Mostrar i reestabliu el criteri [EXTENSIÓ] tal com es mostra a la figura.
- Deseu la consulta i anomeneu-la: Consultes-Voluntari-Pràctica2.
- DMáx
- Pràctica 3: crear una consulta que mostri els valors d'un camp a partir d'un altre camp on cerqueu dades.
- Una operació que es realitza sistemàticament en un entorn de bases de dades consisteix en cercar una dada en un camp i esbrinar, pel registre en què s'ha trobat el valor d'aquest camp, quin és el valor d'un altre camp. La funció que incorpora l'Access és: DBúsq (Dlookup)
- Així doncs, creeu una consulta que us demani una capital de comarca i mostri la comarca de la qual és capital:
- Afegiu la taula Característiques comarques a la consulta.
- Incorporeu el camp NOM_COMARCA.
- La graella de la consulta serà:
- La funció DBúsq té tres arguments: "[NOM_COMARCA]", "CARACTERÍSTIQUES COMARQUES" i [CAPITAL]=[Quina capital?]
- La funció DBúsq utilitza els arguments anteriors de la forma següent: cerca a Característiques comarques (segon argument) el primer registre que verifica que el camp CAPITAL sigui el valor entrat per teclat [Quina capital?] (tercer argument). Si troba aquest registre, la funció DBúsq retorna el valor corresponent al camp NOM_COMARCA (primer argument). Si no el troba, la funció DBúsq retorna el valor null.
- El criteri Es negado nulo, equivalent a not(null), s'utilitza per mostrar només el registre corresponent a les dades demanades. Comproveu que succeeix si treieu aquest criteri i activeu la casella Mostrar del camp derivat.
- Desactiveu la casella anterior i reestabliu el criteri esborrat.
- Executeu la consulta, tal com es mostra al gràfic, i deseu-la: Consultes-Voluntari-Pràctica3
Nota: aquesta consulta es pot fer de manera més senzilla sense fer ús de la funció DBúsq.
- DBúsq
- Pràctica 4: crear una consulta que faci ús de la funció Siinm (iif).
Aquesta consulta consisteix en mostrar els municipis que tenen museu d'art i un indicador d'aquesta circumstància.
Creeu una consulta nova,
- Afegiu la taula Museus.
- Els camps que intervenen són: POBLACIÓ, NOM_MUSEU. Cal que afegiu un altre camp a la graella, encarregat de respondre la qüestió plantejada:
- Observeu que la funció iif (Siinm), que l'Access la mostra com Iif (Silnm), té tres apartats:
Siinm(condició_a_avaluar; valor_si_la_condició_és_certa;valor_si_la_condició_no_és_certa).
Podeu veure que aquesta funció, recordeu que és Siinm, us permetrà seleccionar un valor o altre en funció d'una condició que s'avalua. Executeu la consulta i observeu que hi ha repeticions no desitjables en els resultats obtinguts. En una pràctica posterior utilitzareu aquesta mateixa consulta per veure com es poden evitar aquestes repeticions.
- Fixeu-vos que en la condició que s'avalua, s'utilitza la funció EnCad, ja esmentada en una pràctica anterior, que serveix per esbrinar si una cadena de caràcters és dins d'una altra.
- Finalment, deseu aquesta consulta i anomeneu-la: Consultes-Voluntari-Pràctica4.
- iif (Función)
- Pràctica 5: estudiar i crear una consulta per analitzar la incidència del tipus de combinació en els registres mostrats a la consulta.
La consulta que es treballa en aquesta pràctica ha de mostrar les poblacions que no tenen museu d'una comarca entrada per teclat
Creeu una consulta nova:
- Afegiu les taules Característiques comarques, Municipis de Catalunya i comarca a la qual pertanyen i Museus a la consulta.
- Creeu un paràmetre que demani el nom de la comarca, tal com es mostra a:
- Executeu la consulta i observeu que els registres que apareixen són els que corresponen a aquelles poblacions que tenen museu.
- Per tal de mostrar les poblacions que no tenen museu cal recórrer a modificar el tipus d'unió entre les taules que intervenen en la consulta, per la qual cosa, cliqueu dues vegades el segment que uneix les dues taules de l'esquerra i veureu la finestra que mostra el tipus de combinació entre aquestes:
.
- Podeu observar que hi ha tres possibilitats: en la primera, que és la que hi ha per defecte, només es mostren aquells valors que són relacionats a les dues taules. Les opcions segona i tercera són equivalents (es refereixen, però, a una de les dues taules que afecten). En aquestes opcions es mostren tots els valors d'una de les taules encara que no hi hagi registres relacionats a l'altra taula.
- Escolliu la segona opció, de forma que la consulta farà referència a totes les comarques. Tanqueu la finestra.
- Repetiu el procés explicat als punts anteriors però al segment que uneix les taules segona i tercera. Escolliu també la segona opció.
- Executeu la consulta i observeu com hi ha valors nuls a la columna de la dreta. Què vol dir això? Doncs que hi ha poblacions que no han pogut ser relacionades amb cap registre de la taula Museus, la qual cosa vol dir que són les poblacions que es demanaven a la consulta.
- Afegiu, per tant, un nou criteri a la consulta:
- Si executeu la consulta, ara si que es mostren les poblacions que no tenen museus.
- Deseu aquesta consulta amb el nom: Consultes-Voluntari-Pràctica5.
- Calcular una suma, promedio, cuenta u otro total sobre todos los registros de una consulta
- Pràctica 6: crear una consulta per mostrar registres no duplicats.
Seleccioneu la consulta Consultes-Voluntari-Pràctica4
Els registres que apareixen estan duplicats. Per exemple, Cadaqués está repetida. En aquests casos és convenient evitar les duplicacions.
Mostreu la consulta en mode Diseño i seguiu els passos:
- Cliqueu amb el botó dret del ratolí qualsevol punt de la part superior de la finestra o, si ho preferiu, la icona . Us apareixerà la finestra de les propietats de la consulta:
- Modifiqueu la propietat Valores únicos a Sí. Això fa que, encara que la consulta ha trobat diversos registres per a una mateixa població, ja que aquesta població té més d'un museu d'art, només aparegui una sola vegada, evitant duplicacions.
- Executeu la consulta i comproveu que la consulta ja no mostra poblacions duplicades.
- NOTA: tingueu compte a l'hora de desar aquesta nova consulta. Per desar-la, escolliu l'opció Guardar como o exportar del menú Archivo i anomeneu-la Consultes-Voluntari-Pràctica6.
- Establecer las propiedades para una consulta, sus campos o sus listas de campos
- Pràctica 7: crear una consulta per mostrar el codi SQL.
- Aquesta consulta ha de mostrar, per a una comarca, entrada per teclat, els museus que té la seva capital.
- Així doncs, creeu una consulta en la qual no intervinguin les taules: Províncies i Préstecs.
- Modifiqueu les relacions inicials entre les taules. Han de ser com apareix a la graella següent:
- Afegiu, tal com es motra a la graella, els camps NOM_COMARCA, NOM_MUSEU i POBLACIÓ.
- Activeu el menú Ver i l'opció Vista SQL. La finestra us mostra el codi SQL que és el que, internament, executa la consulta. Com podeu comprovar en la sintaxi mostrada, seria molt fàcil equivocar-nos en un parèntesi, un punt, etc. Això, no obstant, igual que creeu una consulta mitjançant l'assistent, també podeu crear una consulta buida i emplenar el codi SQL.
- Executeu la consulta i deseu-la amb el nom: Consultes-Voluntari-Pràctica7.
- Ver o modificar la instrucción SQL que está detrás de una consulta existente
- Pràctica 8: crear una consulta SQL d'unió.
- Hi ha casos on cal crear registres de forma que apareguin valors de registres que resulten de la unió de diferents criteris. En aquests casos, no podeu utilitzar l'assistent d'Access i cal escriure la instrucció adient per mostrar registres de diferents taules o consultes que no es poden relacionar de forma fàcil.
- Creeu una consulta que mostri les poblacions que pertanyen a una comarca costanera o que tinguin museu municipal.
- Creeu una consulta nova sense afegir cap taula.
- Activeu la subopció Unión, de l'opció Específica de SQL del menú Consulta. Us apareix una finestra en blanc on heu d'escriure (podeu marcar-la i copiar-la a la finestra) la sentència SQL d'unió:
SELECT [MUNICIPIS DE CATALUNYA I COMARCA A LA QUAL PERTANYEN].POBLACIÓ
FROM [CARACTERÍSTIQUES COMARQUES] INNER JOIN [MUNICIPIS DE CATALUNYA I COMARCA A LA QUAL PERTANYEN] ON [CARACTERÍSTIQUES COMARQUES].CODI_COMARCA = [MUNICIPIS DE CATALUNYA I COMARCA A LA QUAL PERTANYEN].CODI_COMARCA
WHERE ((([CARACTERÍSTIQUES COMARQUES].[LITORAL?])=-1))
UNION
SELECT MUSEUS.POBLACIÓ
FROM MUSEUS
WHERE (((MUSEUS.NOM_MUSEU) Like "museu mun*"));
- Executeu la consulta i deseu-la amb el nom: Consultes-Voluntari-Pràctica8.
- Consulta específica de SQL
- Combinar datos en campos de dos o más tablas utilizando una consulta de unión
Exercicis
- Exercici 9: creeu una consulta que mostri el nom de la comarca menys poblada de Catalunya i la seva població, tal com mostra la figura:
- Nota: la consulta és molt semblant a la pràctica 2. El camp EXTENSIÓ no l'heu d'incloure i sí el camp HABITANTS.
Deseu la consulta amb el nom: Consultes-Voluntari-Exercici9.
- DMín
-
- Exercici 10: creeu una consulta que mostri les poblacions de les comarques que tenen una extensió donada pels valors compresos entre dos entrats per teclat. La funció que heu d'utilitzar és: Entre ..Y... Aquesta funció usa dos arguments que utilitza per retornar els valors que estan compresos entre ells. Per exemple, Entre 5 y 7 retorna tots els valors entre 5 i 7 (inclosos aquests dos). La consulta serà tal com mostra el gràfic:
Nota: els dos arguments de la funció Entre..Y.. són: [Quina extensió mínima] i [Quina extensió màxima] perquè l'usuari pugui entrar les dades interactivament.
Nom amb què heu de desar la consulta: Consultes-Voluntari-Exercici10.
-
- Exercici 11: dissenyeu una consulta de referències creuades on es mostrin totes les comarques i la província a la qual pertanyen i en les columnes l'expressió "costanera" o "d'interior". Cada cel·la mostrarà el nombre de municipis de la comarca.
Nota: recordeu que l'expressió Silnm mostrada per l'Access és Siinm i que la condició [LITORAL?]=0 és equivalent a [LITORAL?]=No (de la mateixa manera que [LITORAL?]= - 1 és equivalent a [LITORAL?]=Sí).
Nom que heu de donar a la consulta en desar-la: Consultes-Voluntari-Exercici11.
- Exercici 12: creeu una consulta, basada en la taula Préstecs, per tal d'obtenir un llistat dels llibres que no han estat retornats en la data prevista on ha de constar el número de dies que porten de retard.
Nota: la funció Diffecha té tres arguments: "d", [DATA TORNADA] i Fecha(). "d" indica la forma (dies) com es presenta la diferència entre dues dates: [DATA TORNADA] i Fecha(). Fecha() és una funció que retorna la data del sistema.
Deseu aquesta consulta amb el nom: Consultes-Voluntari-Exercici12.
- Exercici 13: utilitzeu la consulta de l'exercici 11 per tal de crear una consulta que mostri els totals, per província, de les poblacions costaneres i d'interior.
Nota: és una consulta de totals
Deseu aquesta consulta amb el nom: Consultes-Voluntari-Exercici13.
- Exercici 14: creeu una consulta de referències creuades que mostri el nombre de poblacions, per a cada província, segons el tipus d'indústria i en funció del seu litoral. La consulta serà semblant a la següent:
Nota: aquesta consulta té dos encapçalaments de fila. El camp POBLACIÓ s'usa només per comptar el nombre de registres.
Deseu aquesta consulta amb el nom: Consultes-Voluntari-Exercici14.
- Exercici 15: creeu una consulta que mostri totes les poblacions, la província a la qual pertanyen i una frase indicant si tenen o no museu. La consulta de totals pot ser com la següent:
Nota: [Museus]![POBLACIÓ] Es nulo, "No hi ha museus" i "Té museu" són els tres arguments utilitzats per la funció Siinm. El primer argument és la condició que s'avalua. Si és certa, retorna el valor donat pel segon argument i, en cas contrari, l'argument donat pel tercer argument.
Deseu aquesta consulta amb el nom: ConsultesVoluntari-Exercici15.
- Exercici 16: consulta on per a cada comarca, d'una província entrada per teclat, es mostra l'extensió relativa a l'extensió de la província a què pertany.
Nota: aquesta consulta inclou la taula Característiques comarques dues vegades. D'aquesta manera, podeu incloure el camp EXTENSIÓ dues vegades: una per trobar el valor suma de tots i l'altra per agrupar les dades.
Deseu aquesta consulta amb el nom: Consultes-Voluntari-Exercici16.
- Exercici 17: modifiqueu la consulta de la pràctica Consultes-Agrupacions-Pràctica6 per fer que aparegui 0 a les caselles sense dades.
Nota: heu de modificar el format com es presentaran les dades del camp POBLACIÓ tal com mostra la figura:
- L'expressió que heu d'escriure (# ; ; ; 0) té quatre arguments (no són tots obligatoris) separats per ;:
- Primer argument: format per als nombres positius (#). Consisteix en presentar el valor numèric obtingut.
- Segon argument: format per als nombres negatius (cap). En aquest cas s'ha ignorat.
- Tercer argument: format per als valors zero (cap). En aquest cas s'ha ignorat.
- Quart argument: format per als valors nuls (0). En aquest exercici 0, és a dir, que a la consulta aparegui 0 si no s'ha trobat cap registre.
Deseu aquesta consulta amb el nom: Consultes-Voluntari-Exercici17.
SOLCVOL.MDB