Poniamo il caso di aver costruito in Access le seguenti tabelle, riguardanti le generalità degli impegati nell’impresa di distribuzione “Mail Boxes” e i dati relativi alla loro busta paga (rispettivamente le tabelle sono Mail boxes e Retribuzione:
| cognome impegato | nome impiegato | ID |
|---|---|---|
| Aloi | Jacopo | 1 |
| Bianchi | Stefano | 2 |
| Frattigiani | Luigi | 3 |
| Miccoli | Leonardo | 4 |
| Pratesi | Riccardo | 5 |
| Rossi | Michele | 6 |
| Salvi | Angelo | 7 |
| Sermonti | Alfonso | 8 |
| tipo di contratto | retribuzione netta | numero ore straordinario | ID |
|---|---|---|---|
| Full time | 1300 | 2 | 1 |
| Part time | 600 | 2 | 2 |
| Part time | 600 | 3 | 3 |
| Part time | 700 | 3 | 4 |
| Part time | 500 | 3 | 5 |
| Full Time | 1200 | 4 | 6 |
| Full time | 1300 | 4 | 7 |
| Part time | 400 | 5 | 8 |
vogliamo chiedere al sistema, con SQL, di visualizzare solo la colonna dei cognomi degli impiegati presso Mail Boxes, dunque creiamo una semplice query:
SELECT [mail boxes].[cognome impegato]
FROM [mail boxes];
il risultato della nostra query sarà il seguente:
| cognome impegato |
|---|
| Aloi |
| Bianchi |
| Frattigiani |
| Miccoli |
| Pratesi |
| Rossi |
| Salvi |
| Sermonti |
ora invece vogliamo ottenere delle informazioni da entrambe le tabelle, e per fare ciò costruiremo una Join, ossia un’unione tra le due tabelle. Vogliamo sapere, infatti, quali sono gli impegati che hanno un contratto full time, perciò scriveremo:
SELECT [mail boxes].[cognome impegato], retribuzione.[tipo di contratto]
FROM [mail boxes] INNER JOIN retribuzione ON [mail boxes].ID = retribuzione.[tipo di contratto]
WHERE ((“tipo di contratto”=”full time”));
otterremo il seguente risultato:
mail boxes Query1
| ID | cognome impiegato | tipo di contratto |
| 1 | Aloi | full time |
| 6 | Rossi | full time |
| 7 | Salvi | full time |
Di fondamentale importanza in un DBMS relazionale è il CAMPO CHIAVE, un codice che accomuna tabelle diverse per agganciare i dati che si ripresentano in esse, al fine di poter creare delle Join.
