Guida Rapida all`utilizzo di Microsoft Word

Guida Rapida all’utilizzo di Microsoft Access
Giorgio Delzanno
L’ambiente Access
Acces è un sistema per la gestione di database relazionali che permette di creare schemi, inserire e modificare dati
tramite maschere, definire ed eseguire interrogazioni (query) SQL. Le query possono essere definite tramite una finestra
che guida la loro definizione oppure direttamente tramite il linguaggio SQL.
In un Database Access i dati vengono memorizzati in un insieme di tabelle (relazioni). Le caratteristiche di una tabella
vengono definite tramite la loro struttura (schema dei dati). Il foglio dei dati presenta invece i dati veri e propri.
Strumenti
Per selezionare gli strumenti di lavoro utilizzare la voce Visualizza, Barre degli strumenti. Una configurazione
ragionevole prevede la visualizzazione della barra del database.
Guida in linea, Gestione dei File, Ricerca, e Stampa
Simili alle operazioni viste in Excel e Word. Ad es., la guida in linea è disponibile alla voce ? della barra dei menu.
Impostazione pagina e fogli
Come nel caso di Word è possibile impostare le caratteristiche di stampa delle tabelle di un database utilizzano le voci
File, Imposta Pagina.
Visualizzazione
Come in Word si può visualizzare il risultato dell’elaborazione utilizzando File, Anteprima Stampa.
Gestione di un Database
Per creare (aprire) un database nuovo (già esistente) si usa la voce File, Nuovo (Apri) database che crea una
sottofinestra che chiameremo tabella del database corrente con le voci Tabelle, Query, Maschere, Report, Macro che
permette di creare (modificare) le componenti del database corrente.
Tabelle
Struttura (o schema dei dati)
Per creare un nuovo schema di una relazione occorre selezionare il tasto Nuovo dalla tabella del database corrente e
quindi selezionare la voce Visualizza struttura e premere Ok. A questo punto verrà visualizzata una apposita finestra
nella quale sarà possibile definire il nome della tabella (relazione), il nome delle sue colonne (attributi), il tipo degli
attributi e la loro descrizione, ed infine dove è possibile specificare la chiave primaria della relazione.
Per specificare la chiave primaria occorre selezionare l’attributo (attributi) candidato e premere il pulsante chiave
primaria (con una chiave come logo) sulla barra del database. Per salvare con nome la struttura appena definita si
utilizza la voce File, Salva con Nome.
Nota: ricordate che lo schema dei dati specifica solo la struttura della tabella, non il suo contenuto.
Inserimento Dati
Dopo aver creato e salvato le strutture delle relazioni, possiamo inserire i dati semplicemente aprendo la tabella
(pulsante Apri) dalla finestra del database corrente ed inserendo i dati nelle apposite celle. Ogni riga di una tabella viene
chiamata record.
Aprire tabelle
Se si vuole invece visualizzare lo schema di una tabella (relazione) preesistente occorre selezionarne il nome e premere
Struttura.
Maschere
Per popolare le relazioni di un database si possono anche creare delle maschere che facilitano l’inserimento dei dati.Una
maschera ha l’aspetto di un modulo attraverso il quale possiamo inserire o mostrare ad un utente i dati del database.
03/06/17 10.34 1
Per creare una nuova maschera occorre selezionare Maschere, Nuovo dalla finestra del database. La voce Visualizza
struttura permette di personalizzare la maschera inserendo campi e bottoni a scelta. Altre voci forniscono formati
predefiniti quali Maschera standard: a colonne.
Query
Le query possono essere create attraverso la finestra delle query raggiungibile tramite la voce Query della finestra del
database corrente. Una nuova query può essere memorizzata in modo da poter essere riutilizzata e modificata.
Inoltre può essere visualizzata in uno dei seguenti modi:
 come tabella (contente i dati risultanti dall’esecuzione della query, vedi Visualizza, Visualizzazione Foglio Dati);
 come struttura (contente la definizione della query in un linguaggio grafico, vedi Visualizza, Visualizzazione
Struttura);
 come codice SQL (vedi Visualizza, Visualizzazione SQL).
Creare una Query SQL
Una query viene creata premendo Nuovo nella finestra delle query e quindi selezionando la voce Visualizza Struttura.
Scrivere Query SQL
Per operare direttamente con il linguaggio SQL occorre:
 Chiudere la finestra Mostra tabella.
 Selezionare Visualizzazione SQL dalla voce Visualizza della barra dei menu.
 Immettere la query nella nuova finestra (che inizialmente conterrà solo la parola chiave SELECT).
Le query vanno scritte utilizzando la sintassi vista a lezione.
In ogni caso si può consultare il manuale on-line per avere la sintassi precise dei comandi (cercate il nome del costrutto
che vi interessa, ad es. SELECT ecc.).
Alcuni aspetti della sintassi di Microsoft SQL ono ripresi alla fine di queste note.
Salvare Query
Una volta terminata la specifica della query, si può salvare con nome utilizzando la voce File, Salva con Nome.
Eseguire Query
Per eseguire una query selezionare la voce Query, Esegui dalla barra dei menu. Il risultato dell’esecuzione di una query
sarà una nuova relazione che verrà visualizzata su una nuova finestra.
Visualizzare il codice SQL
Per visualizzare il codice SQL di una query esistente occorre: selezionare il nome della query dalla finestra del
database, aprire la sua struttura (pulsante Struttura), e quindi selezionare Visualizza, Visualizzazione SQL dalla barra
dei menu.
Altri modi di inserire una query
Oltre alla sintassi SQL le query possono essere visualizzate come strutture.
Le strutture contegono la definizione delle query fatta attraverso un linguaggio grafico tradotto automaticamente in SQL
(vedi Visualizza, Visualizzazione Struttura). Utilizzare le strutture può velocizzare la composizione di query.
Ad esempio, la tabella Mostra tabella permette di specificare il nome delle tabelle da interrogare. Ogni tabella
selezionata viene aggiunta (prenere Aggiungi nella finestra Mostra tabella) nello spazio apposito della finestra Query
di selezione.
Report
I report permettono di formattare le tabelle (e i fogli dato delle query) di un database in modo da creare dei documenti
pronti da essere stampati. La voce Report della finestra del database corrente permette di selezionare vari formati
predefiniti oppure di utilizzare una procedura di autocomposizione per formattare i dati di una tabella.
Alcuni aspetti della sintassi di Microsoft SQL
La sintassi di Microsoft SQL corrisponde alla sintassi vista a lezione tranne in alcuni punti (ad es. op. LIKE, uso di
COUNT). Qui di seguito presentiamo alcuni aspetti presi dal manuale on-line.
In ogni caso è consigliabile consultare il manuale di Access per dissipare i dubbi sulla sintassi dei costrutti.
03/06/17 10.34 2
Costrutto SELECT
SELECT [predicato] { * | tabella.* | [tabella.]campo1 [AS alias1] [, [tabella.]campo2 [AS alias2] [, ...]]}
FROM espressionetabella [, ...] [IN databaseesterno]
[WHERE... ]
[GROUP BY... ]
[HAVING... ]
[ORDER BY... ];
L'istruzione SELECT è composta dalle parti descritte di seguito.
Parte
Descrizione
predicato
Uno dei seguenti predicati: ALL, DISTINCT, DISTINCTROW, TOP.
Il predicato viene utilizzato per limitare il numero di record restituiti. Se non è specificato
alcun predicato, quello predefinito è ALL.
Specifica di selezionare tutti i campi della tabella o delle tabelle specificate.
Nome della tabella contenente i campi da cui vengono selezionati i record.
Nomi dei campi da cui recuperare i dati. Se si include più di un campo, i dati vengono
recuperati nell'ordine elencato.
Nomi da utilizzare come intestazioni di colonna al posto dei nomi di colonna originali in
tabella.
Nome della tabella o delle tabelle contenenti i dati che si desidera recuperare.
Nome del database contenente le tabelle presenti in espressionetabella se non si trovano nel
database corrente.
*
Tabella
Campo1, campo2
Alias1, alias2
Espressionetabella
Databaseesterno
Osservazioni
Le query vanno sempre terminate dal punto e virgola. Ad es., SELECT Nome FROM Studenti ; (terminata da ‘;’).
Le proposizioni WHERE, ORDER BY, GROUP BY, HAVING ecc. sono opzionali.
Per eseguire una SELECT, il modulo di gestione di database Microsoft Jet effettua la ricerca nella tabella o nelle
tabelle specificate, estrae le colonne prescelte, seleziona le righe che soddisfano il criterio di ricerca e ordina o
raggruppa le righe nell'ordine specificato.
Le istruzioni SELECT non modificano i dati del database.
La sintassi minima di un'istruzione SELECT è:
SELECT campi FROM tabella;
Per selezionare tutti i campi di una tabella è possibile utilizzare un asterisco (*). Nel seguente esempio vengono
selezionati tutti i campi della tabella Impiegati:
SELECT * FROM Impiegati;
Se un nome di campo è incluso in più di una tabella nella proposizione FROM, farlo precedere dal nome della tabella e
dall'operatore ‘punto’ (ad es. Studenti.Nome). Nell'esempio seguente, il campo Reparto si trova sia nella tabella
Impiegati che nella tabella Superiori. L'istruzione SQL seleziona Reparto dalla tabella Impiegati e NomeSup dalla
tabella Superiori:
SELECT Impiegati.Reparto, Superiori.NomeSup;
FROM Impiegati, Superiori
WHERE Impiegati.Reparto = Superiori.Reparto;
Ogni volta che si utilizzano funzioni di aggregazione o query che restituiscono nomi di oggetti Field ambigui o
duplicati, è necessario utilizzare la proposizione AS per fornire un nome alternativo per l'oggetto Field. Nel seguente
esempio viene utilizzato il titolo Risultato conteggio per denominare l'oggetto Field restituito nell'oggetto Recordset
risultante:
SELECT COUNT(IDImpiegato)
AS RisultatoConteggio FROM Impiegati;
03/06/17 10.34 3
Per limitare e organizzare ulteriormente i dati restituiti, è possibile utilizzare le altre proposizioni di un'istruzione
SELECT.
Quando si usa la clausola GROUP BY per raggruppare tuple di una relazione:
Nella clausola SELECT devono comparire o funzioni aggregate (AVG, MAX, COUNT, ecc.) o nomi di attributi che
compaiono anche nella clausola GROUP BY, ad es.:
SELECT Cognome, Count(*) FROM Studenti GROUP BY Cognome;
Per ulteriori informazioni, vedere l'argomento della Guida relativo alla proposizione che si sta utilizzando.
Subquery
Una sottoquery è un'istruzione SELECT nidificata in un'istruzione SELECT oppure in un'altra sottoquery.
Per creare una sottoquery, è possibile utilizzare tre forme di sintassi:
confronto [ANY | ALL | SOME] (istruzionesql)
espressione [NOT] IN (istruzionesql)
[NOT] EXISTS (istruzionesql)
Una sottoquery è composta dalle parti descritte di seguito.
Parte
confronto
espressione
istruzionesql
Descrizione
Espressione e operatore di confronto che confronta l'espressione con i risultati della sottoquery.
Espressione che viene ricercata nel set di risultati della sottoquery.
Istruzione SELECT, che segue lo stesso formato e le stesse regole di ogni altra istruzione SELECT.
Deve essere racchiusa tra parentesi.
Osservazioni
È possibile utilizzare una sottoquery al posto di un'espressione nell'elenco dei campi di un'istruzione SELECT o in una
proposizione WHERE o HAVING. In una sottoquery, è possibile utilizzare un'istruzione SELECT per fornire un set
di uno o più valori specifici da valutare nell'espressione della proposizione WHERE o HAVING.
Utilizzare il predicato ANY o SOME, che sono sinonimi, per recuperare i record nella query principale che soddisfano
il confronto con tutti i record recuperati nella sottoquery. Nell'esempio seguente vengono restituiti tutti i prodotti il cui
prezzo unitario è maggiore di quello di qualsiasi prodotto venduto con uno sconto del 25 per cento o maggiore:
SELECT * FROM Prodotti
WHERE PrezzoUnitario > ANY
(SELECT PrezzoUnitario FROM DettagliOrdini
WHERE Sconto >= .25);
Utilizzare il predicato ALL per recuperare solo quei record nella query principale che soddisfano il confronto con tutti i
record recuperati nella sottoquery. Se nell'esempio precedente si modifica ANY in ALL, la query restituirà solo quei
prodotti il cui prezzo unitario è maggiore di quello di tutti i prodotti venduti con uno sconto del 25 per cento o
maggiore. Ciò è molto più limitativo.
Utilizzare il predicato IN per recuperare solo quei record della query principale per i quali esistono nella sottoquery dei
record con lo stesso valore. Nell'esempio seguente vengono restituiti tutti i prodotti con uno sconto del 25 per cento o
maggiore:
SELECT * FROM Prodotti
WHERE IDProdotto IN
(SELECT IDProdotto FROM DettagliOrdini
WHERE Sconto >= .25);
Viceversa, è possibile utilizzare NOT IN per recuperare solo quei record della query principale per i quali non esistono
nella sottoquery dei record con lo stesso valore.
Utilizzare il predicato EXISTS con la parola riservata NOT opzionale nei confronti true/false per determinare se la
sottoquery restituisce dei record.
03/06/17 10.34 4
In una sottoquery è possibile inoltre utilizzare alias di nomi di tabella per fare riferimento alle tabelle elencate in una
proposizione FROM esterna alla sottoquery. Nell'esempio seguente vengono restituiti i nomi degli impiegati il cui
stipendio è uguale o maggiore allo stipendio medio degli impiegati che hanno la stessa posizione. Alla tabella Impiegati
viene dato l'alias "T1":
SELECT Cognome,
Nome, Posizione, Stipendio
FROM Impiegati AS T1
WHERE Stipendio >=
(SELECT Avg(Stipendio)
FROM Impiegati
WHERE T1.Posizione = Impiegati.Posizione) Order by Posizione;
Nell'esempio precedente la parola riservata AS è opzionale.
Alcune sottoquery sono consentite nelle query a campi incrociati, soprattutto come predicati come, ad esempio, nella
proposizione WHERE. Le sottoquery come output, ad esempio quelle nell'elenco SELECT, non sono consentite nelle
query a campi incrociati.
Costrutto LIKE
Sitassi: Espressione LIKE "Criterio di ricerca"
Espressione
Criterio di ricerca
Espressione SQL utilizzata in una proposizione WHERE.
Stringa o carattere visualizzato con il quale viene confrontata espressione.
Osservazioni
È possibile utilizzare l'operatore Like per ricercare in un campo di valori che corrispondono al criterio di ricerca
specificato. Per criteriodiricerca è possibile specificare il valore completo come, ad esempio, Like "Rossi" oppure si
possono utilizzare i caratteri jolly per ricercare un intervallo di valori come, ad esempio, Like "Ro*".
In un'espressione, è possibile utilizzare l'operatore Like per confrontare un valore di campo con un'espressione stringa.
Se, ad esempio, si immette Like "C*" in una query SQL, essa restituirà tutti i valori di campo che iniziano con la lettera
C. In una query con parametri, è possibile richiedere all'utente di specificare un criterio di ricerca.
Nell'esempio seguente vengono restituiti i dati che iniziano con la lettera P seguita da qualsiasi lettera compresa tra A e
F e tre cifre:
Like "P[A-F]###"
Nella tabella seguente viene mostrato come utilizzare l'operatore Like per valutare le espressioni in base a differenti
criteri di ricerca.
Tipo di corrispondenza
Caratteri multipli
Carattere speciale
Caratteri multipli
Carattere singolo
Cifra singola
Intervallo di caratteri
Non compresa in un intervallo
Non è una cifra
Combinata
Criterio di ricerca
a*a
*ab*
a[*]a
ab*
a?a
a#a
[a-z]
[!a-z]
[!0-9]
a[!b-m]#
OK
aa, aBa, aBBBa
abc, AABB, Xab
a*a
abcdefg, abc
aaa, a3a, aBa
a0a, a1a, a2a
f, p, j
9, &, %
A, a, &, ~
An9, az0, a99
03/06/17 10.34 5
NO
aBC
aZb, bac
aaa
cab, aab
aBBBa
aaa, a10a
2, &
b, a
0, 1, 9
abc, aj0