Relazionare due tabelle
Nel capitolo 4 abbiamo creato due tabelle ed abbiamo già visto secondo quale criterio sono state strutturate al fine di essere messe in relazione tra loro.
Col termine relazione si intende appunto legare due o più tabelle in modo da fornire un risultato unico in funzione di una interrogazione volta a più parti, secondo il principio umano del lavoro di squadra, dove i membri della squadra sono le tabelle.
Abbiamo creato una tabella separata per le categorie per non dover ripetere N volte il nome della categoria, evitando quindi la ridondanza dei dati. Per essere ancora più precisi avremmo potuto creare una tabella separata anche per gli autori, ma sarebbe stato un lavoro troppo oneroso per chi è alle primissime armi.
Alla fine del capitolo, comunque, vi mostrerò la struttura relazionale del database con le tabelle delle categorie, degli autori e dei libri.
Il tipo di relazione che intercorre tra la tabella delle categorie e quella dei libri, secondo le strutture definite nel capitolo 4, è di uno a molti ovvero ad una categoria possono corrispondere più libri e non viceversa.
Vediamo come si fa in Access a creare una relazione. Accedete alla scheda delle Query ed una volta che la maschera iniziale vi chiederà di aggiungere una tabella, selezionatele entrambe, aggiungetele e chiudete la maschera.
Cliccate poi col tasto sinistro del mous sul campo id della tabella delle categorie e, senza lasciare il mouse, trascinate fino al campo rif_categoria della tabella dei libri. Otterrete il risultato mostrato nell'immagine seguente:

Visualizza / SQLper vedere cosa ha scritto Access per noi
SELECT FROM categorie INNER JOIN libri ON categorie.id = libri.rif_categoria;Se notate mancano i nomi dei campi tra le istruzioni SELECT e FROM per il motivo che non li abbiamo esplicitamente specificati in fase di costruzione visuale... a questo serve conoscere l'SQL (a questa questa pagina potete trovare la guida al linguaggio SQL).
in cui troverete un capitolo che spiega come costruire relazioni via codice. Intanto modifichiamo a mano la query aggiungendo un asterisco (*) tra i comandi SELECT e FROM in modo da specificare tutti i campi
SELECT * FROM categorie INNER JOIN libri ON categorie.id = libri.rif_categoria;Attenzione: le due tabelle contengono il campo id quindi per specificare il campo dell'una o dell'altra si utilizza la forma
nome_tabella.nome_campoquindi
categorie.idper la tabella delle categorie e
libri.idper la tabella dei libri.
Salvate la query col nome relazione.







