Guadagna online

Fidelityhouse.eu

giovedì 9 febbraio 2012

Access - 4° lezione


Abbiamo visto come interrogare il database tramite query. Lo strumento Query di Access è molto potente e 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 SQL. Questo linguaggio viene utilizzato per interrogare, e non solo, i database.

Il linguaggio SQL 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 guidato per semplificare la scrittura di una query SQL. Per realizzare la query di esempio fatta nella lezione precedente, è stato lo stesso access a creare il codice SQL per noi. Per verificare possiamo aprire in modalità struttura la query creata nella lezione precedente, dal menù in alto selezionare visualizza, quindi visualizza SQL. Conoscere il linguaggio SQL è molto importante se si vuole sviluppare software, o soltanto gestire un piccolo database privato. A volte capita che le query create con la struttura guidata, risultino inefficienti per la soluzione di un certo problema. In quei casi la conoscenza di questo linguaggio può offrire soluzioni più performanti. Ma andiamo a fare qualche esempio.
{loadposition b_mike}


Torniamo alla finestra di visualizzazione SQL e scriviamo qualcosa. Cancelliamo tutto quello che vediamo e sostituiamolo con l'espressione:
{codecitation class="brush: sql; gutter: false;"}SELECT *
FROM Tabella;{/codecitation}
Dopo la parola "FROM" bisogna inserire il nome della tabella, vi ricordo che il linguaggio SQL è case-sensitive, quindi bisogna stare attenti alle maiuscole/minuscole.
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).
Anche se non tutto è sempre così semplice, possiamo dire che la sintassi di questo linguaggio è parecchio intuitiva. Facciamo un'altro esempio
{codecitation class="brush: sql; gutter: false;"}SELECT titolo FROM Libri;{/codecitation}
Con questa query vogliamo visionare solo, il titolo dei libri presenti nella tabella "Libri". Per convenzione, si scrivono i comandi come SELECT FROM ect... in maiuscolo e il resto in minuscolo; non è un errore scrivere tutto in minuscolo o in maiuscolo, la query funziona ugualmente, ma la lettura ad occhio nudo risulta difficoltosa, quando si dovranno scrivere query più "grandi"
Con i due precedenti esempi riusciamo a tirar fuori tutti i dati presenti nella tabella, ma se volessimo verificare se un libro è presente oppure no?
Per questo ci viene in aiuto la clausola WHERE, esempio:
{codecitation class="brush: sql; gutter: false;"}SELECT *
FROM Libro
WHERE titolo = "Pippo";{/codecitation}
questa query dà come risultato l'intero record con il titolo uguale a Pippo; se sono presenti, ad esempio, due libri con il titolo Pippo, allora la query darà come risultato due record.


JOIN
Il join viene usato per collegare tra loro due tabelle; questo lo avevamo già fatto nella precedente lezione, ma come si implementa con il linguaggio SQL?
Viene da sè che per implementare un join c'è bisogno delle chiavi esterne e, se ad esempio, volessimo estrarre tutti gli autori con il relativo titolo di libro, la sintassi è la seguente.
{codecitation class="brush: sql; gutter: false;"}
SELECT Autore.nome, Autore.cognome, Libro.titolo
FROM Autore INNER JOIN Libro
ON Autore.ID_autore = Libro.id_Autore;
{/codecitation}
Nella Select, bisogna dichiarare il nome della tabella seguito dal campo che si vuole visualizzare, quindi se vogliamo visualizzare il nome dell'autore sarebbe Autore.nome (Tabella.Campo). Nel From abbiamo utilizzato il comando INNER JOIN, (Tabella1 INNER JOIN Tabella2), per poi collegare le tabelle con le chiavi, ON Autore.ID_autore = Libro.id_Autore. 
Quindi ricapitolando, la sinstassi per fare un JOIN è:
{codecitation class="brush: sql; gutter: false;"}
FROM Tabella1 INNER JOIN Tabella2
ON Tabella1.CampoChiave = Tabella2.CampoChiave{/codecitation}
Nelle Prossime lezioni vedremo altri comandi SQL.

0 commenti:

Posta un commento

adf.ly 2.3g