Concetti Chiave
- Il prodotto cartesiano combina tutte le righe di due tabelle, creando una nuova tabella con tutte le possibili associazioni.
- In SQL, il prodotto cartesiano si ottiene con il comando SELECT senza condizioni nella clausola WHERE.
- Il comando SELECT permette di elencare matricole di studenti con valutazioni in specifiche materie, come italiano e matematica.
- L'operazione INTERSECT consente di ottenere matricole comuni tra due tabelle di studenti basate su valutazioni in diverse materie.
- Le tabelle temporanee create dalle interrogazioni possono essere intersecate solo se compatibili e di grado 1.
Prodotto cartesiano
L'operatore insiemistico di prodotto cartesiano agisce sulle righe di due tabelle in ingresso e fornisce in uscita una nuova tabella costituita da tutte le righe della prima tabella congiunte con tutte le righe della seconda.
Implementazione in SQL
Per implementare il prodotto cartesiano in SQL è sufficiente eseguire il comando select tra più tabelle,senza specificare alcuna condizione nella clausola ehere,con la seguente sintassi:
SELECT *
FROM Tabella1, Tabella2;
Elencare le matricole degli studenti che hanno valutazioni sia in italiano sia in matematica.
(SELECT DISTINCT Studenti.Matricola
FROM Studenti, Valutazioni
WHERE Studenti.Matricola = Valutazioni.Matricola
AND Materia =”Italiano”)
INTERSECT
(SELECT DISTINCT Studenti.Matricola
FROM Studenti, Valutazioni
WHERE Studenti.Matricola = Valutazioni.Matricola
AND Materia =”Matematica”)
L'operato di intersezione è applicato a due tabelle risultanti da altrettante interrogazioni che permetto,la prima,di avere in una tabella le matricole degli studenti con valutazioni in italiano la seconda di avere in un'altra tabella le matricole degli studenti con valutazioni in matematica. Le due tabelle temporanee,entrambe di grado 1 e compatibili,possono essere intersecate per ottenere in questo modo le matricole degli studenti con valutazioni in entrambe le materie,richieste.
Domande da interrogazione
- Cos'è il prodotto cartesiano e come si ottiene in SQL?
- Come si possono elencare le matricole degli studenti con valutazioni in italiano e matematica?
- Qual è il ruolo dell'intersezione nelle query SQL per le valutazioni degli studenti?
Il prodotto cartesiano è un operatore insiemistico che combina tutte le righe di due tabelle, creando una nuova tabella. In SQL, si ottiene utilizzando il comando SELECT tra più tabelle senza specificare condizioni nella clausola WHERE, come mostrato nella sintassi: `SELECT * FROM Tabella1, Tabella2;`.
Per ottenere le matricole degli studenti con valutazioni in entrambe le materie, si utilizza l'operatore di intersezione (INTERSECT) su due query distinte che selezionano le matricole per ciascuna materia. Questo permette di ottenere solo le matricole che soddisfano entrambe le condizioni.
L'intersezione è utilizzata per combinare i risultati di due query che identificano le matricole degli studenti con valutazioni in italiano e matematica. Le due tabelle temporanee risultanti vengono intersecate per ottenere le matricole che hanno valutazioni in entrambe le materie richieste.