Abbiamo visto come effettuare intorrogazioni incrociate tra tabelle grazie alle query. Lo strumento Query di Access è molto potente che consente, anche al programmatore non esperto, di operare sulla base di dati con grande potenza e versatilità.
Una potenza ancor più grande si può ottenere con la conoscenza del linguaggio più utilizzato nel mondo dei data base: il linguaggio SQL.
SQL è universalmente utilizzato per interrogare e gestire basi di dati. Permette di creare, modificare, eliminare tabelle ed attributi, o anche interi database.
La creazione delle query tramite la modalità struttura non è nient'altro che un metodo visuale per semplificare la scrittura di una query SQL. Per rendercene conto possiamo aprire in modalità struttura la query creata nelle lezioni precedenti e dal menù in alto scegliere visualizza
, quindi visualizza SQL
. La strana frase che appare nella nuova finestra è proprio quella stessa query scritta in SQL.
È importante conoscere SQL per diversi motivi: a volte capita che le query visuali risultino inefficienti per la soluzione di un certo problema. In quei casi la conoscenza di questo linguaggio può offrire soluzioni più performanti.
In secondo luogo non è detto cha dal semplice progetto di un archivio elettronico non si passi alla creazione di pagine Web dinamiche che accedono al database. In situazioni del genere la conoscenza di SQL è un passo obbligato. Pertanto è utile introdurre alcuni concetti basilari di questo linguaggio.
Torniamo alla finestra di visualizzazione SQL con e scriviamo qualcosa anche noi. Cancelliamo tutto quello che vediamo e sostituiamolo con l'espressione:
SELECT * FROM libri
Per vedere che effetto ha questa query, clicchiamo sul punto esclamativo. Vediamo apparire tutti i record della tabella libri. Abbiamo domandato infatti, tramite SQL, di selezionare (select
) tutti i campi (*
) della tabella (from
) libri
.
Anche se non tutto è sempre così semplice, possiamo dire che la sintassi di questo linguaggio è parecchio intuitiva.
Facciamo un secondo esperimento con quest'altra espressione (è indifferente scrivere maiuscolo o minuscolo):
SELECT titolo, nome FROM libri, autori WHERE libri.id_autore = autori.id_autore
Abbiamo chiesto al data base di visualizzare i nomi degli autori ed i titoli dei loro libri dicendo in maniera esplicita che i campi si trovano nelle tabelle Libri
ed Autore
e che per collegare (where
) i record nel modo giusto, il valore id_autore
della tabella Libri
deve essere identico al valore id_autore
della tabella Autori
.
Per il momento ci ferimamo qui. Ora però sappiamo che le nostre query non sono altro che espressioni SQL espresse in modalità grafica.