5° Anno TEORIA 4. Introduzione al linguaggio SQL | Página 18

16. Il linguaggio SQL Vers. 11.2 – Febbraio 2026
( D) L’ operazione di giunzione naturale o equi-join( chiamata anche inner-join) viene anch’ essa realizzata nel linguaggio SQL utilizzando il comando SELECT. In pratica si effettua prima il prodotto cartesiano come al punto( C) e poi una selezione come al punto( A) grazie alla clausola WHERE imponendo l’ uguaglianza dei valori degli attributi che devono corrispondere nelle due tabelle.
N. B. Utilizzando gli alias( ossia la clausola AS) sarà possibile effettuare anche TUTTE le operazioni di SELF JOIN( ossia TUTTI i vari tipi di join sulla stessa tabella)
Esempio: Se, riguardo al caso precedente, vogliamo l’ elenco dei dipendenti concatenati ai relativi reparti che li ospitano come luogo di lavoro, si deve effettuare un equi-join tra le tabelle Dipendente e Reparto. Questa operazione relazionale“ derivata”( prodotto cartesiano condizionato) consiste nell’ effettuare dapprima il prodotto cartesiano delle tabelle Dipendente e Reparto per poi effettuare, sulla tabella risultante, una selezioneo restrizione che ricavi tutte quelle ennuple per le quali i valori dell’ attributo CodR1 della tabella Dipendente( supposta essere la chiave esterna o FOREIGN KEY sulla tabella Reparto) risultino uguali ai valori dell’ attributo CodR della tabella Reparto( supposta essere la sua chiave primaria o PRIMARY KEY)
Quindi σ P( Dipendente X Reparto) con P = { Dipendente. CodR1 = Reparto. CodR } Nel linguaggio SQL sarà
SELECT * FROM Dipendente, Reparto WHERE CodR1 = CodR;
che equivale, secondo la sintassi illustrata, alla seguente operazione derivata dell’ algebra relazionale
Dipendente �� Reparto
CodR1 = CodR equivalentemente
SELECT * FROM Dipendente INNER JOIN Reparto ON CodR1 = CodR;
Se R = Dipendente S = Reparto A = CodR1 B = CodR R �� S
R. A = S. B
( E) Le operazioni di unione, intersezione e differenza Per tradurre le operazioni dell’ algebra relazionale di unione, intersezione e differenza il linguaggio SQL utilizza tre operatori che si applicano ai risultati delle interrogazioni. Tali operatori sono:
• UNION( per l’ operazione relazionale di unione o ∪),
• INTERSECT( per l’ operazione relazionale di intersezione o ∩)
• MINUS( per l’ operazione relazionale di differenza o-)
( N. B. INTERSECT e MINUS non valide in MySql. Per poterle svolgere in modo equivalente, occorrerà utilizzare la tecnica delle sottointerrogazioni o sottoquery o SUBQUERY)
Esempio: Consideriamo le seguenti relazioni di un ipotetico db chiamato“ cinema” Regista( CodRegista, Cognome, Nome) Attore( CodAttore, Cognome, Nome)
Autore: Rio Chierego( email: riochierego @ libero. it- sito web: www. riochierego. it) Pag. 18