Query

La funzionalità di un Database sta nella sua capacità di visualizzare i dati desiderati organizzati secondo un certo ordine. Una query è uno strumento che consente di porre domande sui dati memorizzati. Le più frequenti sono quelle di selezione che consentono di visualizzare i dati delle tabelle, analizzarli ed eventualmente modificarli. I dati richiesti vengono visualizzati in un Dynaset che mostra un insieme dinamico di dati provenienti da una o più tabelle.

E' possibile immettere e modificare i dati nei campi del dynaset così come in una tabella : le modifiche avranno effetto sulle tabelle di origine dello stesso Database .

Con le query è possibile :

  1. Scegliere determinati campi di una tabella
  2. Scegliere i record (ad esempio le persone nate in un certo anno)
  3. Ordinare i record (ad esempio in ordine alfabetico crescente o decrescente)
  4. Eseguire calcoli (campi calcolati) per creare ad esempio un campo che moltiplichi il prezzo per la quantità e memorizzi poi il risultato.

Creazione di una Query

 

E' possibile creare una query tramite l'autocomposizione oppure manualmente, scegliendo la Visualizzazione struttura.

Autocomposizione

Esistono 4 modi diversi di creare delle query con l'autocomposizione:

Autocomposizione query semplice:

Crea una query di selezione sulla base dei campi selezionati. È il tipo più comune di query.
Per crearla si deve:

  • Aprire il database e cliccare sulla scheda Query
  • Cliccare sul pulsante Nuovo
  • Cliccare su Autocomposizione query sempolice e poi su o.k
  • Nella finestra che si apre, selezionare la tabella dalla quale si vogliono prelevare i dati dalle casella Tabella/query
  • Cliccare su un nome di campo nella casella Campi disponibili e sul pulsante > per inserirlo (oppure su >> per inserirli tutti)
  • Scegliere, se necessario, un'altra tabella e aggiungere ulteriori campi
  • Dare un nome alla query e cliccare sul pulsante Fine.

Autocomposizione query a campi incrociati:

Crea una query a campi incrociati per visualizzare dati in un formato compatto simile ad un foglio di calcolo

Autocomposizione ricerca duplicati:

Crea una query per trovare record con valori di campo duplicati in una singola tabella o query

Autocomposizione ricerca dati non corrispondenti:

Crea una query per trovare in una tabella i record che non hanno record correlati in un'altra tabella.

Visualizzazione struttura

Nella finestra mostra tabella che si apre, si deve selezionare la tabella o la query (o entrambe) che interessa nella rispettiva scheda cliccando poi sul pulsante Aggiungi (per selezionare più voci in ordine sparso, cliccare tenendo premuto Ctrl, per selezionare tutte le voci cliccare sulla prima e poi sull'ultima tenendo premuto Maiusc oppure cliccare sulla prima e trascinare) e infine su Chiudi.

 

Nella finestra Query di selezione verrà visualizzato un elenco di campi: si può cliccare sul nome di un campo e trascinarlo nella riga sottostante chiamata Campo ; ciascuna colonna contiene delle informazioni relative al campo incluso nella query . Per aggiungere più campi basta selezionare quelli desiderati tenendo premuto Ctrl e trascinarli poi tutti assieme nella griglia QBE (query tramite esempio : query by example). ; per aggiungere tutti i campi assieme si deve selezionare l'asterisco posto in cima all'elenco dei campi e trascinarlo nella griglia. Se sono state scelte più tabelle, si potrebbero vedere delle linee che le uniscono (join) e mostrano il modo in cui un record di una tabella è correlato al record di un'altra.

Tipi di visualizzazione di una Query

 

La finestra query dispone di tre tipi di visualizzazione:

  1. Struttura : per creare una query o modificarne una esistente. In tal caso sono disponibili gli strumenti grafici per creare la query
  2. Foglio dati : per esaminare i dati estratti dalla query
  3. Anteprima di stampa: per vedere l'aspetto che avranno i dati una volta stampati.

Operazioni e modifica di Query

Ridisposizione, inserimento ed eliminazione di campi

Per spostare un campo si deve :

  1. Selezionarlo cliccando sul selettore di campo
  2. Cliccare di nuovo sul selettore e trascinare la colonna in una nuova posizione.

Per eliminare un campo, dopo averlo selezionato basta premere il tasto Canc. E' possibile eliminare tutti i campi nella griglia QBE scegliendo il comando Cancella griglia del menu Modifica. Per modificare o adattare la larghezza di una colonna al testo si procede come nelle tabelle.

Visualizzazione di un Dynaset

Dopo aver progettato la query è possibile visualizzare il dynaset corrispondente utilizzando il pulsante Visualizza che mostra il foglio dati. Per tornare all'altra visualizzazione basta cliccare sull' icona Visualizza che mostra la struttura (è possibile apportare delle modifiche e tornare poi all'altra visualizzazione)

Rinominare un campo in una query

Per rinominare un campo si deve:

  • Aprire la query in visualizzazione struttura
  • Cliccare a sinistra della prima lettera del nome di campo nella griglia QBE
  • Immettere il nuovo nome seguito da due punti (:)

Impostazione del tipo di ordinamento

Quando viene eseguita una query e visualizzato il dynaset corrispondente è più semplice l'interpretazione dei dati se gli stessi sono ordinati. La creazione di una query che ordini i dati risulta utile se si desidera visualizzare i dati ordinati in una maschera o in un report. Per specificare il tipo di ordinamento si deve:

  • Cliccare sulla cella Ordinamento nel QBE (visualizzazione struttura ) relativa al campo da ordinare, quindi cliccare sulla freccia di selezione
  • Scegliere "Crescente" o "Decrescente".

E' possibile specificare un tipo di ordinamento per più campi.

Impostazione di criteri

 

L'impostazione di criteri permette di limitare il dynaset corrispondente a determinati record. I criteri vengono specificati utilizzando un'espressione che indica i record da includere e può essere di tipo semplice (ad esempio tutti i record corrispondenti alle filiali italiane si ritroveranno scrivendo "Italia") o più complessa (per trovare tutti i record corrispondenti ai rappresentanti di età compresa tra 20 e 30 anni scriveremo: Between 20 and 30). Un'espressione può essere digitata direttamente nella griglia QBE nella cella "Criteri" seguendo una precisa sintassi (per le filiali dell'esempio precedente si può scrivere: Italia, =Italia, "Italia", ="Italia") oppure si può ricorrere al generatore espressioni. In questo caso si deve:

  • Selezionare la cella criteri nella griglia QBE
  • Cliccare col tasto destro e scegliere il comando Genera..
  • Nella finestra che si apre, detta Generatore espressioni, scriveremo quanto voluto ricorrendo quando possibile alle funzioni già presenti.

 

Per eliminare una tabella da una query, si deve selezionare quella desiderata in visualizzazione struttura (cliccare sull'asterisco) e premere il tasto Canc.

Utilizzo dei caratteri jolly

Durante la progettazione di una query é possibile che si desideri selezionare dei campi contenenti una stringa di caratteri (ad esempio tutti i nomi che iniziano per B...). I caratteri jolly fondamentali sono:

? che sta per un singolo carattere posto in quella posizione
* che sta per un numero qualsiasi di caratteri posti in quella posizione

Ad esempio:

Pa? la Visualizza Paola, Paula...
*imo Visualizza ventesimo, trentesimo...

Selezione di record che non corrispondono ad un determinato valore

Per far ciò si deve utilizzare l'operatore Not. Così se vogliamo ricercare tutti i nomi che non iniziano per S, scriveremo Not S*.

Impostazione di più criteri

In una query è possibile impostare diversi criteri per un campo utilizzando gli operatori And e Or (ad esempio per selezionare tutti i cognomi che iniziano per B e contengono la lettera S, scriveremo Like "B*" And Like "*s*". Utilizzando Or faremo si che un campo soddisfi un criterio oppure un altro (Like "Bal*" And Like "sal*" visualizzerà tutti i record che iniziano per Bal.. o per Sal..).

Selezione di record contenenti dei valori

E' possibile selezionare dei record a seconda che contengano o meno dei valori ( ad esempio solo le ditte che possiedono un numero di fax). Per far ciò si deve inserire nei criteri, sotto il campo scelto (nell'esempio fax) la scritta IS NOT NULL (o NOT NULL cioè che non sia nullo)

Creazione di campi calcolati

E' possibile creare nel QBE dei campi calcolati che eseguano appunto dei calcoli. Se ad esempio abbiamo già il campo Prezzo unitario e quello Quantità, possiamo creare un nuovo campo per calcolare il Prezzo totale. La sintassi in questo caso sarà:

Prezzo totale:[Prezzo unitario]*[Quantità] (i nomi dei campi devono essere racchiusi in parentesi quadra).

Oppure per calcolare lo sconto di vari oggetti possiamo inserire la formula Totale: =[Prezzo] -[Prezzo]*[Sconto]/100

Calcolo di formule nelle query

E' possibile porre delle domande relative a gruppi di dati e ciò si può fare con le query con formule. Per far ciò si deve:

  • Creare una query e trascinare i dati che si desidera nel QBE
  • Scegliere il comando Totali del menu Visualizza

Nella griglia QBE verrà visualizzata la riga "Formula" con il valore prefissato "Raggruppamento".
Nella cella formula, sotto ciascun campo, selezionare il tipo di formula (ad esempio Conteggio, per calcolare il numero di record, Somma, Media, Max e Min...con il significato noto).

Tipi di Query

Query di comando

Una query di comando apporta modifiche a molti record con una sola operazione. Esistono quattro tipi di query di comando: di Eliminazione, di Aggiornamento, di Accodamento e di Creazione tabella.

Query di eliminazione

Questo tipo di query elimina un gruppo di record da una o più tabelle. È possibile, ad esempio, utilizzare una query di eliminazione per rimuovere i prodotti di cui è stata interrotta la produzione o per i quali non esistono ordini. Con le query di eliminazione vengono eliminati sempre record interi, non solo determinati campi al loro interno.

Query di aggiornamento

Questo tipo di query apporta modifiche globali a un gruppo di record in una o più tabelle. È possibile, ad esempio, aumentare i prezzi del 10 per cento per tutti i prodotti caseari o aumentare gli stipendi del 5 per cento per le persone appartenenti a una determinata categoria lavorativa.

Query di accodamento

Questo tipo di query aggiunge un gruppo di record di una o più tabelle alla fine di una o più tabelle. Si supponga, ad esempio, che vengano acquisiti nuovi clienti e un database contenente una tabella di informazioni su di essi. Invece di digitare nuovamente tutte queste informazioni, si accodano alla propria tabella Clienti.

Query di Creazione tabella

Questo tipo di query crea una nuova tabella in base a tutti i dati o parte di essi contenuti in una o più tabelle.

Query con parametri

Una query con parametri è una query per la quale durante l'esecuzione viene visualizzata una finestra di dialogo che richiede delle informazioni, come l'immissione di criteri per recuperare dei record o un valore che si desidera inserire in un campo.

Query trova duplicati

Trova i record ripetuti in una tabella.