Operatori relazionali

Selezione
genera una tabella temporanea contenente alcuni o tutti i campi dei record di una o più tabelle collegate.

Esempi di Selezioni:

Join Naturale o equi-join
è una selezione tra due tabelle collegate aventi una proprietà in comune. Il risultato è costituito da tutti i record di entrambe le tabelle il cui attributo comune ha lo stesso valore.

Esempio di equi-join:

Si considerino la tabelle Studenti:

IDStudente Cognome Nome Data Nascita ...
1 Rossi Ugo 01/01/1990 ...
2 Verdi Gino 02/01/1990 ...
3 Bianchi Luca 03/01/1990 ...
... ... ... ... ...

e la tabella classi frequentate:

IDClasse Anno Scol. Sigla Esito Media IDStudente
1 2006/2007 1A Promosso 7.50 1
2 2007/2008 2A Promosso 7.75 1
3 2008/2009 3A Promosso 7.50 1
4 2007/2008 1B Promosso 6.50 2
5 2008/2009 2B Promosso 6.50 2
... ... ... ... ... ...

Le due tabelle hanno in comune la proprietà IDStudente, pertanto l'equi-join produce una tabella con i record formati dai campi della prima e i campi della seconda tabella aventi lo stesso valore del campo IDStudente.
Il risultato è:

IDStudente Cognome Nome ... IDClasse AS Sigla ...
1 Rossi Ugo ... 1 06/07 1A ...
1 Rossi Ugo ... 2 07/08 2A ...
1 Rossi Ugo ... 3 08/09 3A ...
2 Verdi Gino ... 4 07/08 1B ...
2 Verdi Gino ... 5 08/09 2B ...
... ... ... ... ... ... ... ...



join esterno
si distingue in:
left join: è una selezione tra due tabelle correlate che produce una tabella i cui record sono tutti quelli della prima tabella seguiti dai campi della seconda tabella che hanno lo stesso valore dell'attributo in comune.

right join: produce una nuova tabella in cui sono presenti tutti i record della seconda tabella e, a ognuno di essi, seguono i campi della prima tabella che hanno lo stesso valore dell'attributo in comune.

Esempio:
Si considerino le due tabelle Genitori e Figli, aventi in comune l'attributo ID.

La relazione è di grado 1:N (un genitore ha più figli).

L'equi join produce una tabella con i record formati dal genitore e dal figlio, ma se una persona non ha figli non è presente nel risultato.

Il left join invece elenca comunque tutte le persone presenti nella tabella Genitori e aggiunge i campi dei record prelevati dalla tabella Figlio solo quando trova due record (Genitore e Figlio) con lo stesso valore del campo ID.

Il right join, invece, produrrebbe una tabella i cui record sarebbero tutti quelli tabella Figli seguiti dai campi di tutti i record corrispondenti della tabella Genitori.

Nel risultato, ad esempio, potrebbe essere presente il figlio anche se nella tabella Genitori non è specificato il genitore.