ECDL 5-13.

Di Giuseppe Servidio

Modulo 5.

Lezione 13. – Gli ordinamenti

In questa lezione verranno approfonditi gli argomenti relativi agli ordinamenti

Per prima cosa, riapriamo il nostro database, scegliamo l'etichetta query e scegliamo di creare una query in visualizzazione struttura. Nella finestra "mostra
tabella", scegliamo la tabella Indirizzi, poi con tab il pulsante Aggiungi, infine, sempre con TAB, Chiudi.

Questa volta però vogliamo scrivere la nostra query direttamente in SQL, per cui andiamo direttamente al menù visualizza e scegliamo Visualizzazione SQL. Comparirà
la solita finestra di testo con SELECT from Indirizzi;

Completare la query con quanto si trovera di seguito:

SELECT cognome, nome, sesso

FROM Indirizzi

order by cognome;

Se eseguiamo questa query, troveremo che non è successo nulla di diverso da quanto ci saremmo aspettati: infatti, ci sono stati presentati i tre campi che
abbiamo richiesto, ordinati per cognome. Torniamo ora in SQL e, al posto dei tre campi, scriviamo *, perché ci vengano mostrati tutti i campi dei record
della nostra tabella. Eseguiamo poi la query; notare che l'unica differenza è che, come avevamo richiesto, ci vengono mostrati tutti i campi. Ma ciò che
volevo far notare si trova nella nostra griglia. Ritornare quindi in visualizzazione struttura, e osserviamo insieme ciò che Access ha costruito.

E' presente soltanto una colonna, che contiene, nella riga campo, "cognome", ma nella riga mostra non viene attivata la casella di spunta: questo perché
questo campo viene usato solo per definire l'ordinamento.

Da qui in poi farò fare delle prove per raggiungere, per gradi, ciò che desidero mostrare.

Per prima cosa, in visualizzazione struttura, portiamoci con CTRL+Home (inizio), all'inizio della griglia, precisamente nella colonna cognome, riga campo.
Selezioniamo tutte le righe di quella colonna tenendo premuto maiuscolo e utilizzando freccia giù; poi, premiamo canc per cancellarla. A questo punto, nella
riga campo voglio che si inseriscano i seguenti campi: cognome, nome, data di nascita e sesso. Non starò a ripetere la procedura. Fare riferimento alle lezioni
precedenti per riprenderla, nel caso non si dovesse ricordare. Ora, vogliamo ordinare i record per cognome in modo crescente. Portiamoci sul campo cognome
(se non si e’ sicuri di dove siamo, usare CTRL+inizio per andarci), e spostarsi con la freccia fino alla riga Ordinamento. Apriamo la casella elenco (alt+freccia
giù), scegliamo crescente e richiudiamo la casella elenco con ESC. Se eseguiamo questa query, troveremo che non c'è nulla di particolare da notare, se non che i
quattro campi richiesti di ogni record sono stati evidenziati, e che i record sono ordinati per cognome. I problemi aumentano quando vogliamo aggiungere
un altro campo all'ordinamento. Supponiamo di voler ordinare i nostri record per sesso e per cognome. Basterà portarsi nella riga ordinamento del campo
sesso e scegliere crescente, nel modo appena usato col cognome. Proviamo allora ad aggiungere questa ulteriore specificazione e ad eseguire la query. Ciò
che vorremmo ottenere è di avere prima tutte le femmine ordinate per cognome, poi tutti i maschi ordinati per cognome.

Purtroppo non abbiamo ottenuto ciò che volevamo, perché abbiamo sempre l'ordinamento per cognome, mentre il sesso è disordinato. Torniamo allora in visualizzazione
struttura per verificare cosa sia successo. Access, valutando i campi da sinistra a destra, ha prima ordinato i record per cognome e poi ha tentato di
ordinarli per sesso. Ma dato che in questo database non ci sono cognomi ripetuti, l'ordinamento non ha funzionato. Oltretutto, noi volevamo ottenere prima
l'ordinamento per sesso, poi per cognome. Si potrebbe allora spostare all'inizio il campo sesso, ma anche questo non è corretto: infatti i campi hanno
una loro logica di presentazione e noi non vogliamo che il sesso sia il primo.

Allora: come possiamo fare? Proviamo allora ad aggiungere, sempre nella nostra griglia, un'altra volta il campo cognome mettendo ordinamento crescente,
e mettendo non ordinato il primo campo cognome. Per ottenere quest'ultima situazione, apriamo la casella elenco del primo cognome e scegliamo "non ordinato".
Eseguiamo quindi la query. Anche questa volta non abbiamo ottenuto ciò che volevamo: il cognome è ripetuto due volte, ci sono tutti i campi del record, anche
se hanno un certo ordinamento.

OK, do la soluzione. Basta che si  vada nel secondo campo cognome, l'ultima colonna, e si deseleziona con barra spaziatrice la casella mostra. Mi raccomando,
fare attenzione. Se l’ausilio non dovesse leggere quel grafico, premere solo una volta lo spazio ed eseguire la query. Vedremo che prima ci sono tutte
le femmine, poi tutti i maschi, ed entrambi i gruppi sono ordinati per cognome.

E' esattamente cio' che volevamo ottenere. Dopo tutte queste prove, possiamo chiudere con soddisfazione sia la query (non importa che salviamo le modifiche),
che il database. Possiamo a questo punto considerare conclusa anche questa lezione.


Giuseppe Servidio
Per tornare all'indice, premi alt piu' freccia sinistra.