Access: Query semplici Marco Gribaudo Marcog@di.unito.it
Tipi di Query Selezione Cancellazione Modifica (aggiornamento) Accodamento Creazione tabella Campi incrociati Query speciali
Le Query in Access Le query in Access possono essere espresse tanto graficamente che utilizzando il linguaggio SQL. Si creano dall’apposita pagina di creazione query. Le risposte vengono visualizzate direttamente sotto forma di tabelle.
Le Query in Access (II)
Le Query in Access (III) Con il pulsante a sinistra in alto si possono alternare 3 visualizzazioni diverse: Struttura: per creare la Query graficamente. SQL: per creare la Query utilizzando SQL. Foglio dati: per visualizzare i risultati della Query. Access trasforma automaticamente le query grafiche in SQL e vice-versa quando si alternano le due modalità di visualizzazione.
Le Query in Access (IV) Con il pulsante tipo di Query (situato al centro) si seleziona il tipo di query: Selezione, cancellazione, accodamento… A seconda del tipo di query selezionato cambia la maschera d’immissione sottostante. Le Query che devono essere “attivate” (cancellazione, aggiornamento…), vengono eseguite utilizzando il pulsante “!”.
Le Query in Access (V) Si possono scegliere le tabelle su cui opera la query: All’inizio, dall’apposito menu’ di selezione. Attraverso il pulsante “+” seguito da una tabellina.
Le query in Access (VI) Così come le tabelle, anche le Query sono contraddistinte da un nome. Il nome della Query può essere utilizzato in maschere, report ed altre Query per identificare la tabella generata come risposta all’interrogazione stessa.
Query di Selezione Permettono di “filtrare” una o più tabelle. Sono capaci di scegliere solamente qualche riga, qualche colonna o qualche combinazione di esse. Possono “unire” insieme le informazioni contenute in una o piu’ tabelle.
Selezionare colonne L’operazione più semplice che si può fare con le query di selezione è quella di selezionare solamente alcune colonne di una tabella. Normalmente la query non visualizza alcun campo. Occorre scegliere quali campi si vuole considerare!
Selezionare colonne (II) Per includere una colonna nel risultato di una Query basta trascinarla nello spazio sottostante. Il simbolo “*” indica tutti i campi di una tabella: equivale a portare manualmente tutti i campi di una tabella.
Selezionare colonne (III) È possibile cambiare l’ordine di visualizzazione dei campi nella tabella risultante, spostando le colonne della parte sottostante. Come vedremo, l’ordine dei campi è importante in alcune circostanze!
Cambiare nome ai campi Ogni campo nella tabella di risposta, mantiene il nome che aveva nella tabella originale. Si può cambiare il nome del campo nella tabella risposta scrivendo: Nuovonome: nomecampo
Calcolare nuovi campi Alcuni campi possono essere calcolati a partire dal valore di altri campi dei record considerati. In questo caso è sufficiente inserire nella riga “campo” la formula capace di calcolare il nuovo valore. È meglio assegnare un nuovo nome al campo risultante, utilizzando la sintassi vista prima. (nuovonome: espressione).
Calcolare nuovi campi (II) I campi del record di partenza utilizzati nella formula, devono essere scritti tra parentesi quadre (comunque Access ci aiuta facendolo lui se ce ne dimentichiamo). Es.: [Peso Loro] : [Peso Netto] + [Tara]
Semplici operazioni sui campi Esistono numerose funzionalità per calcolare i valori di nuovi campi. Le più semplici sono le 4 operazioni: + somma - differenza * moltiplicazione / divisione ( ) le parentesi possono comporre espressioni
Semplici operazioni (II) La somma di due campi di tipo stringa corrisponde alla loro concatenazione. Si possono aggiungere parti di testo “fisse” scrivendole tra virgolette. Es.: [Nome] + “ “ + [Cognome]
Selezionare righe Spesso non si vogliono visualizzare tutti i record di una tabella, ma solamente quelli che rispettano alcune caratteristiche. È possibile specificare delle espressioni che indicano quali record includere nella tabella di risposta.
Selezionare per uguaglianza La selezione più comune è quella di considerare solamente i record che hanno un valore specifico in un campo. Questo si effettua immettendo il valore cercato nella casella “criteri” corrispondente al campo in questione.
Selezionare tramite confronti Si possono cercare valori che siano: <> diversi > maggiori, >= maggiori o uguali < minori, <= minori o uguali In questo caso si mette il simbolo sopra indicato, seguito dal valore con cui si intende confrontare il campo: Es.: <> “FISICA”
L’operatore like Quando si cercano delle parole in campi di tipo testo, si può chiedere che questi “assomiglino” a stringhe fornite. In questo caso si usano caratteri Jolly, come quelli che si adoperano per i nomi di file nelle operazioni di ricerca su disco.
L’operatore like (II) I caratteri jolly principali sono: Es. ? Qualunque carattere singolo * Qualunque sequenza di caratteri # un numero Es. like “*matematica*” Tutti i campi che contengono la parola “Matematica” al loro interno.
Comporre criteri di selezione Per effettuare filtri più complessi, i criteri di selezione possono essere composti. Si possono comporre per congiunzione o disgiunzione. Si possono negare alcuni criteri.
Le caselle “oppure” Quando si stanno cercando dei record che abbiano un valore o un altro in un campo, si possono utilizzare le righe “oppure” nella colonna relativa al campo in questione. Nelle righe oppure, si indicano le varie alternative. Questa è una operazione di disgiunzione, realizzabile anche attraverso l’operatore OR.
L’operatore AND Se si vuole specificare una congiunzione di due condizioni si può utilizzare l’operatore AND. Es.: >= 5 AND <= 10 Cerca tutti i record il cui valore del campo a cui la condizione è associata, è compreso tra 5 e 10.
L’operatore NOT Si può negare un criterio, utilizzando la parola chiave NOT. Es.: NOT like “*ISTITUZIONI*” Tutti i campi che non contengono la parola “istituzioni”.
Espressioni complesse In alcuni casi si possono cercare record dove alcuni campi abbiano un valore determinato dal valore di altri campi. In questo caso si possono specificare delle formule analogamente a quanto fatto per i campi calcolati: Es.: > [Esami Totali] – 3 Nella colonna relativa al campo [Esami sostenuti] ricerca tutti gli studenti a cui mancano meno di 3 esami.
Ordinare i risultati I risultati delle Query vengono presentati in modo disordinato. Si può chiedere che i dati vengano ordinati, selezionando “crescente” o “decrescente” nella riga “Ordinamento”. Se vi sono più campi in cui è attivato un ordinamento, la priorità è da sinistra a destra: tutti quelli che hanno uguale i campi più a sinistra vengono ordinati in base ai campi più a destra.
Selezionare i campi in uscita Alcuni campi possono servire solamente per effettuarci sopra dei confronti e non è necessario che siano visualizzati nella risposta in uscita. La loro visualizzazione può quindi essere soppressa togliendo il segno di spunta dalla casella “mostra”.
Ordinare rispetto ad altri campi L’utilizzo di campi nascosti può essere sfruttato per ordinare in modo diverso da quello naturale da sinistra a destra. Si può ripetere due volte una medesima colonna. Una la si rende invisibile e la si usa solamente per l’ordinamento, l’altra la si utilizza per la visualizzazione.
Raggruppare i rusltati Filtrando alcune colonne, può succedere che molte righe abbiano esattamente gli stessi valori negli stessi campi. Possiamo allora voler chiedere di avere un unico rappresentante per riga, ed eventualmente di effettuare alcuni calcoli sui campi diversi che hanno i record che vengono raggruppati.
Raggruppare i ristultati (II) Per attivare i raggruppamenti occorre fare click sul simbolo “Totali” In questo caso, compare una nuova riga alla maschera di creazione Query, denominata “Formula”.
Un solo rappresentante per tipo Selezionando la voce “Raggruppemento” nella colonna Totali, si sceglie di avere un unico rappresentante per ogni record avente uguali tutti i campi visualizzati. Può essere adoperato ad esempio per visualizzare l’elenco dei corsi o l’elenco degli studenti a partire da una tabella che contenga un record per ogni studente ed ogni corso che frequenta.
Calcolare i totali Se invece di raggruppamento si selezionano altre voci, allora vuole dire che si esegue un calcolo su quel campo. Il calcolo è un calcolo effettuato su più record (la loro somma, la loro media…) I record coinvolti nel calcolo sono quelli che hanno uguali i campi che possiedono come formula “raggruppamento”
Calcolare i totali (II) Se non ci sono campi con formule di raggruppamento, allora il risultato della Query è un unico record, contenente i risultati delle varie formule inserite. Se vi sono sia formule che raggruppamenti, le formule vengono applicate sui campi selezionati, appartenenti ai record che hanno uguali i campi “raggruppati”.
Calcolare i totali (III) Le formule utilizzabili sono: Conteggio: conta quanti record vengono raggruppati Massimo, Minimo: prendono rispettivamente i campi di valore massimo e minimo. Primo, Ultimo: assumono il valore rispettivamente del primo e dell’ultimo record raggruppati.
Calcolare i totali (IV) Le formule utilizzabili sono: Somma: somma i valori di tutti i campi raggruppati. Media: calcola la media aritmetica dei dati raggruppati. Var e DevSt: calcolano varianza e deviazione standard dei dati raggruppati.
Query basate su query Invece che tabelle, si possono selezionare altre Query come sorgenti di dati. In questo modo si possono effettuare più facilmente domande più complesse. Es.: Calcolare la media pesata dei voti: prima si calcolano le somme prodotti voti*crediti e dei crediti. Quindi si dividono i due valroi.
Query parametriche In molti casi si vuole ripetere in cui cambia solamente i valori che uno o più campi devono assumere. In questo caso si può ricorrere all’utilizzo di Query parametriche. Si inseriscono alcuni parametri che vengono richiesti di volta in volta all’utente prima di effettuare il calcolo.
Aggiungere i parametri Ogni campo che viene specificato e non appartiene direttamente al record viene considerato un parametro. Per essere più puliti è però possibile specificare l’elenco dei parametri che influenzano la query da un apposito menù: Query -> Parametri.. In questo caso si può anche specificare il tipo di dati assegnato ai parametri.