Access: Query semplici Marco Gribaudo [email protected] 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: – ? 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.