Query di selezione con criteri con Microsoft Access
Esempi di Query di selezione con criteri con Microsoft Access
Terza Query : estrazione condizionata WHERE con condizione ben precisa.
Aggiungendo la proposizione WHERE cominciamo a fare sul serio, ad attingere cioè alla vera potenza del linguaggio SQL.
La proposizione WHERE dev'essere inserita dopo il comando SELECT che precisa dovranno far parte dell'insieme e la proposizione quali informazioni FROM che specifica la fonte di tali informazioni e precede la descrizione dei requisiti che devono possedere i records della tabella reale per poter entrare a far parte della costituenda tabella virtuale (la Query).
Il significato della frase sarà quindi: "Seleziona questi elementi da queste tabelle LADDOVE sia valido il criterio".
Il titolo della Query è I vincitori di Roma 1960.
Dal punto di vista della programmazione consiste evidentemente di un Recordset formato da tutti e soltanto i records presenti nella tabella Risultati per i quali il campo IdEdizione contenga il valore 1960.
Si potrebbe realizzare con il comando SQL: "SELECT * FROM Risultati WHERE IdEdizione=1960;"
Vediamo di utilizzare questa volta la Visualizzazione Struttura (figura 1): facciamo click sul 'OK'
Selezioniamo di nuovo tutti i campi, è sufficiente trascinare nella griglia il simbolo di asterisco (*), quindi in corrispondenza del rigo Criteri e del campo IdEdizione, che non deve essere mostrato, ( in quanto lo è già, avendo ricompreso tutti i campi con l'asterisco) specifichiamo il valore 1960 ed ecco l'aspetto della finestra di definizione della query (figura 2).
La finestra in modalità Visualizzazione SQL si presenterebbe così: (notate l'utilizzo delle parentesi tonde!) (figura 3)
Ed ecco infine (figura 4) la stessa finestra in modalità visualizzazione foglio dati: notiamo che i records questa volta sono soltanto 166 e si riferiscono tutti all'Edizione del 1960.
Quarta query: intervalli di validità e approssimazioni
Spesso le ricerche non possono essere mirate con assoluta precisione, anzi, capita frequentemente di cercare una fattura che "è stata spedita verso la fine di aprile, ma non mi ricordo esattamente...", oppure "mi pare proprio che il nome di quel tizio cominciasse per Be..." in tutti questi casi pensate forse che SQL getti la spugna ?
Assolutamente no, anzi mette a vostra disposizione i due operatori BETWEEN e LIKE che risolvono esattamente le situazioni come quelle descritte tra virgolette.
Vediamo il primo caso: vogliamo estrarre dalla tabella risultati soltanto le informazioni che si riferiscono alle edizioni dell'intervallo di tempo: 1980-1990
Selezioniamo la tabella Risultati, quindi facciamo click come al solito su Inserisci, Query, Visualizzazione Struttura, dovremmo ritrovarci come in figura 5.
La prima cosa da fare è fare doppio click sull'asterisco (*) in modo da includere tutti i campi, se invece volessimo escluderne qualcuno.....ormai sapete anche voi come fare, no ? Niente asterisco in questo secondo caso, quindi selezionare ad uno ad uno i campi che volete la Query mostri all'utente.
Veniamo la definizione del criterio: poichè esso si basa su un solo campo, e più precisamente sul campo IdEdizione, occorre aggiungerlo nella griglia della parte inferiore della finestra, avendo cura di 'deselezionare' la casella di opzione 'Mostra' (naturalmente a meno che non sia stato selezionato prima per essere incluso nella query per essere proprio mostrato)
A questo punto occorre riempire il rigo 'Criteri' in corrispondenza del campo IdEdizione, con la sola espressione: BETWEEN 1980 AND 1990 (figura 6)
Ed ecco il risultato finale: salvare la query con qualsiasi nome (Query2 va benissimo), quindi riaprirla in modalità "visualizzazione foglio dati" (figura 7): notate che ora i records sono 763 e se fate scivolare la barra di scorrimento verticale vi accorgerete che nella query non ci sono edizioni superiori al 1990 nè inferiori al 1980, come si voleva ottenere.
Secondo caso: vediamo ora un esempio di utilizzo dell'operatore LIKE, si tratta in questo caso di definire come criterio un intervallo di approssimazione (mostrami tutti i records nei quali il nome del vincitore inizia per 'Be......'
Stesso procedimento per quanto riguarda la procedura di inserimento di una nuova query, sempre in modalità Visualizzazioe Struttura, operazione che ormai avete imparato.
Selezioniamo questa volta il campo 'Vincitore', senza mostrarlo, al solo fine di impostare il criterio, il quale sarà definito con l'espressione: Like "Be*" (figura 8) . Questa volta non selezioniamo tutti i campi ma soltanto i seguenti: 'IdSport', 'IdDisciplina', 'IdEdizione', 'Vincitore', 'Risultato' e 'IdNazione'
Ed ecco il risultato della nostra query con intervallo di approssimazione (figura 9): i campi mostrati questa volta sono soltanto quelli che avevamo selezionato (6), i records estratti sono 44 ed infine notiamo che alla 33esima riga appare un italiano, il pugile welter Benvenuti, edizione 1960
Quinta Query: condizioni aggiuntive e alternative
L'ultima query di questo tutorial inserisce 2 criteri che dovranno essere soddisfatti contemporaneamente perchè il record possa essere estratto e quindi inserito nei risultati della query.
L'obiettivo qui è 'mostrare i risultati relativi a tutte le edizioni delle campionesse olimpiche che si sono svolte in Germania' (figura 10).
Dal momento che vogliamo soltanto le campionesse, dovremo lavorare sul campo 'IdSex', impostando come criterio: '0' (perchè se andiamo a vedere la tabella 'Sessi', '0' corrisponde a 'Femminile') ricordate che non importa inserire il segno di uguale ('=') in quanto è sottinteso.
Per quanto riguarda l'impostazione del criterio Nazione, occorre impostare il valore relativo alla 'Germania' che è '115' (ricavato manualmente dalla tabella 'Nazioni'). Proviamo a salvare e ad eseguire la query (figura 11)
Il risultato che volevamo: i records estratti (sempre dalla tabella 'risultati') sono 49 e si riferiscono contemporaneamente al Sesso 'Femminile' e alla Nazione 'Germania'; non avendo impostato alcun criterio sul campo 'IdEdizione', sono state considerate automaticamente: tutte le edizioni.
Esempi Query con Access
Tutorials su Microsoft Access
Dr.Maurizio Cucchiara
autore del corso:
"Corso Base di Microsoft Access"
disponibile on line su questo sito
MC2 E-Learning S.a r.l.
Formazione per il Web
http://www.mc2.it/html/access.html
Cerca sul web con Google:
Ricerca personalizzata
