CAPITOLO 2
QUERY
Le basi di dati per Economia
Interrogare un database
Una Query è una domanda posta al database per estrarre e
manipolare dei dati.
È un insieme di istruzioni per trovare informazioni in una o più
tabelle tra loro correlate.
Le istruzioni possono prevedere condizioni per l’estrazione dei dati o
definire un ordine di visualizzazione.
Il linguaggio più comunemente usato per formulare query è SQL,
tuttavia Access utilizza l’interfaccia QBE (Query by Example).
Alla base di una query ci sono le relazioni tra tabelle (già inserite o
create automaticamente in fase di interrogazione).
Tipi di Query
• Query di selezione. Estrae dati da una o più tabelle e li rende disponibili
tramite fogli di lavoro, maschere, report, pagine HTML. I dati estratti sono
modificabili. Si possono effettuare calcoli e raggruppamenti.
• Query di aggiornamento. Consente la modifica di uno o più campi di una o
più tabelle per interi gruppi di record.
• Query di eliminazione. Consente l’eliminazione di un gruppo di record da una
o più tabelle.
• Query di creazione tabella. I record vengono immessi in una nuova tabella.
• Query di accomodamento. Aggiunge un gruppo di record alla fine di una o
più tabelle.
• Query a campi incrociati. Aggrega i dati mettendo in relazione i campi di
una tabella.
• Query parametrica. Chiede la specificazione dei campi di ricerca.
Query di selezione basate su una sola tabella
• Dal database corso di studi visualizzare tutti i nomi dei corsi in
ordine alfabetico crescente:
1. Dalla Finestra database cliccare su Query
2. Scegliere Crea una query in visualizzazione Struttura
3. Dalla scheda Tabelle della finestra Mostra tabelle aggiungere
Corsi
4. Trascinare il campo da visualizzare e scegliere l’ordinamento
• Dal database corso di studi visualizzare il nome del Prof. Coates:
Nell’opzione Criteri si
immette il cognome
cercato. Access cercherà il
valore esatto
• Dal database ml visualizzare, per data crescente, i record relativi
alle persone che non sono in età lavorativa (al 19/05/2009):
Si cercano le persone sotto
i 15 anni e sopra i 64. Si
immettono due Criteri
utilizzando operatori di
confronto. In alternativa si
possono combinare con Or
Query di selezione basate su più tabelle (1)
Una join è un tipo di query che consente di selezionare i dati da due
o più tabelle.
Si devono inserire tutte le tabelle da cui si selezionano i dati dalla
scheda Tabelle della finestra Mostra tabelle. Le tabelle devono essere
in relazione, che può essere creata al momento o rilevata
automaticamente se i campi hanno lo stesso nome e contengono dati
dello stesso tipo.
• Dal database ml visualizzare le posizioni lavorative di tutte le
persone del Centro Italia:
1. Dalla Finestra database cliccare su Query
2. Scegliere Crea una query in visualizzazione Struttura
3. Dalla scheda Tabelle della finestra Mostra tabelle aggiungere
persona, paese, posizione
4. Trascinare i campo da visualizzare ed immettere la condizione
Query di selezione basate su più tabelle (2)
Il campo CF è stato rinominato (solo per ciò che concerne la
visualizzazione) anteponendo al nome del campo “codice fiscale:”.
Query di selezione basate su più tabelle (3)
• Dal database corso di studi visualizzare gli esami tenuti dal Prof.
Mason:
• Dal database corso di studi visualizzare gli esami sostenuti dal
Mario Bianchi:
Query di selezione basate su più tabelle (4)
Tramite le funzioni di aggregazione è possibile eseguire operazioni sui dati nella query.
• Dal database corso di studi calcolare la media voto data dalla Professoressa
Parpinel distinguendo per corso:
• Dal database corso di studi calcolare la media voto di Mario Bianchi:
Query di selezione basate su più tabelle (5)
• Calcolare il numero di sessioni sostenute dal Prof. Mason (con e
senza la distinzione per corso).
• Calcolare il numero di esami sostenuti dalla studentessa Maria
Bianchi.
• Calcolare la media dei voti di tutti gli studenti con cognome
Bianchi (aggregati e distinti per nome).
• Calcolare per tutti gli studenti la media voto ed il numero degli
esami svolti.
• Calcolare il numero totale degli esami sostenuti dagli studenti
Maria Bianchi e Mario Verdi
• Visualizzare gli studenti che hanno superato esami (non l’idoneità)
del Prof. Coates
Query di aggiornamento (1)
• Nel database ml aggiornare (al 19/05/09) lo stato dei pensionati (almeno
65 anni di età) in modo tale che risulti il codice 3 (inattivo):
1. Dalla Finestra database cliccare su Query
2. Scegliere Crea una query in visualizzazione Struttura
3. Al posto della Query di selezione (
) selezionare Query di
aggiornamento (
)
4. Dalla scheda Tabelle della finestra Mostra tabelle aggiungere
persona, posizione
5. Trascinare i campi datanascita e stato, immettere i criteri di
aggiornamento e il valore aggiornato.
6. Aggiornare con il comando
Query/Esegui oppure con
Query di aggioramento (2)
• Causa un errore di registrazione è
necessario modificare la data
(23/06/2007 errata, 17/06 corretta) degli
esami di Strategia e politica aziendale I
nel database corso di studi:
• Con una legge a favore della
deprecarizzazione del lavoro si
impone che tutti i lavoratori del
Sud, dipendenti full time,
impiegati a tempo determinato
nei settori Agricoltura e
Costruzioni in data 1/1/2004
vengano assunti a tempo
indeteminato. Si aggiorni il
database ml:
Query di eliminazione
• Dalla tabella Studenti database corso di studi eliminare i record
relativi agli studenti fuori corso (fino alla matricola 707315):
1. Dalla visualizzazione Struttura scegliere Query di eliminazione
2. Dalla scheda Tabelle della finestra Mostra tabelle aggiungere
Studenti.
3. Trascinare il campo Matricola ed immettere il criterio <=707315
4. Esegendo la Query può accadere:
a. Si eliminano i record nella sola tabella Studenti se
non è applicata l’integrità referenziale
b. Si eliminano anche i record collegati alle matricole
cancellate se è selezionata l’opzione relativa
c. Appare un messaggio d’errore e la Query non verrà
eseguita se è applicata l’integrita referenziale ma
non l’eliminazione a catena dei record correlati
Query di creazione tabella (1)
• Nel database corso di studi creare una nuova tabella relativa agli
studenti meritevoli di borsa di studio (esami>10, media>25):
1. Dalla visualizzazione Struttura scegliere Query di creazione tabella
ed assegnare il nome alla nuova tabella.
2. Dalla scheda Tabelle della finestra Mostra tabelle aggiungere
Studenti, Esami.
3. Trascinare i campi da utilizzare, inserire le formule conteggio di voto
e media di voto, immettere i criteri conteggio>10 e media>25.
4. Eseguire la Query.
5. Scegliere le proprietà dei campi della nuova tabella.
Query di creazione tabella (2)
• Nel database ml creare una nuova tabella relativa alle posizioni
delle persone con la dicitura completa delle informazioni.
I risultati di una query di questo tipo dipendono dal tipo di join usato:
1. Inner Join, appaiono solo i record con doppia corrispondenza.
2. Left Join, tutti i record della tabella primaria.
3. Right Join , tutti i record della tabella correlata.
Query di creazione tabella (3)
• Nel database corso di studi creare una nuova tabella con l’elenco
degli studenti che hanno preso almeno un voto superiore al 26.
I risultati dipendono dall’impostazione dei Valori univoci data
nella scheda che si apre tramite Visualizza/Proprietà.
Query di accodamento
• Nel database corso di studi aggiungere alla tabella borsa di studio gli
studenti con più di 8 esami sostenuti (anzichè 10) purchè con media
superiore a 25,5.
1. Dalla visualizzazione Struttura scegliere Query di accodamento
ed indicare il nome della tabella che riceverà i nuovi dati.
2. Dalla scheda Tabelle della finestra Mostra tabelle aggiungere
Studenti, Esami.
3. Trascinare i campi da utilizzare, inserire le formule conteggio di voto
e media di voto, immettere i criteri conteggio>8 e media>25.5.
4. Eseguire la Query.
Query a campi incrociati (1)
• Nel database corso di studi si vuole determinare la media voto data dai
diversi professori in ogni singola sessione:
1. Dalla visualizzazione Struttura scegliere Query a campi incrociati
2. Dalla scheda Tabelle della finestra Mostra tabelle aggiungere
Docenti, Corsi, Esami.
3. Trascinare i campi da utilizzare, indicare se vanno considerati
intestazioni per le righe, per le colonne o valori, inserire le
formule.
4. Eseguire la Query.
Query a campi incrociati (2)
• Nel database ml analizzare la tipologia di lavoro nei diversi settori nel
2004.
Query di query e generatore di espressioni (1)
• Nel database ml si vogliono determinare i principali indicatori del
mercato del lavoro (al 01/01/2004):
1. Si creano delle Query di selezione per determinare il numero di
persone in cerca di occupazione, occupate, in età lavorativa.
Query di query e generatore di espressioni (2)
2. Si creano delle Query che costruiscano delle formule basate sui
valori selezionati dalle query precedenti (query di query).
3. Se le opzioni previste dalle formule non sono sufficienti per
determinare il risultato si può far ricorso al generatore di
espressioni
inserendo l’operazione da calcolare direttamente
nella voce Campo.
Query di query e generatore di espressioni (3)
4. Dopo il calcolo del tasso di disoccupazione vogliamo determinare
quelli di occupazione e di attività:
Query ricerca duplicati (1)
• Nel database corso di studi visualizzare i corsi che presentano lo stesso
professore:
1. Dal menu Nuovo scegliere la creazione guidata di una Query di ricerca
duplicati.
2. Selezionare la tabella (Corsi) e i campi in cui ci sono i dati duplicati
(IdDocente).
3. Scegliere se visualizzare altri campi.
4. Nominare la tabella.
5. Visualizzare la struttura della query ed aggiungendo la tabella Docenti,
visualizzare Cognome e Nome dei professori.
Query ricerca duplicati (2)
• Nel database corso di studi verificare quali voti sono i più comuni (dati
oltre 40 volte):
1. Dal menu Nuovo scegliere la creazione guidata di una Query di ricerca
duplicati.
2. Selezionare la tabella (Esami) e i campi (Voto) in cui ci sono i dati
duplicati.
3. Scegliere di non visualizzare altri campi.
4. Nominare la tabella.
5. Visualizzare la struttura della query e modificare la condizione (>40
anziché >1).
Query ricerca dati non corrispondenti
• Nel database corso di studi visualizzare gli studenti che non hanno ancora
sostenuto esami:
1. Dal menu Nuovo scegliere la creazione guidata di una Query di ricerca
duplicati.
2. Selezionare la tabella (Studenti) della quale saranno riportati i dati che
non trovano corrispondenza con la tabella successiva.
3. Selezionare la tabella nella quale si cercano i dati corrispondenti (Esami).
4. Selezionare i campi corrispondenti tra le due tabelle (le matricole).
5. Selezionare i campi da visualizzare nei risultati.
6. Nominare la query.
Query parametriche
• Nel database corso di studi creare una query di creazione tabella relativa
agli studenti meritevoli di borsa di studio (con esami e media variabili):
1. Creare una Query di creazione tabella.
2. Nei criteri inserire la condizione inserendo all’interno di una stringa tra
parentesi quadre [ ] una frase che indichi di inserire il parametro.
3. Ogni volta che si esegue la
query occorre inserire questi 2
parametri