Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL OPERATORI INSIEMISTICI IN SQL Siano due tabelle: GiochiSolitari(CodiceGioco, NomeGioco, PrezzoGioco) GiochiScatola(CodiceGioco, NomeGioco, PrezzoGioco)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL UNION Il comando UNION permette di unire le righe delle tabelle compatibili in ingresso, fornendo in uscita una nuova tabella che contiene le righe della prima e della seconda tabella (duplicati esclusi) Elencare i nomi di tutti i giochi con i relativi prezzi (SELECT NomeGioco, PrezzoGioco FROM GiochiSolitari) UNION (SELECT NomeGioco, PrezzoGioco FROM GiochiScatola)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL INTERSECT Il comando INTERSECT permette di intersecare le righe di due tabelle compatibili in ingresso, fornendo in uscita una nuova tabella che contiene le righe comuni alle due tabelle in ingresso Elencare i nomi dei giochi solitari in scatola (SELECT NomeGioco FROM GiochiSolitari INTERSECT (SELECT NomeGioco FROM GiochiScatola)
Corso di INFORMATICA anno scolastico Linguaggio SQL EXCEPT Il comando EXCEPT permette di eseguire la differenza tra le righe di due tabelle compatibili in ingresso, fornendo in uscita una nuova tabella che contiene le righe della prima che non compaiono nella seconda Elencare i nomi dei giochi solitari che non sono in scatola (SELECT NomeGioco FROM GiochiSolitari) EXCEPT (SELECT NomeGioco FROM GiochiScatola)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL GIUNZIONE (JOIN) Loperatore algebrico di giunzione agisce sulle righe di due tabelle, collegate fra loro da una coppia di attributi definiti su dominio comune, e fornisce in uscita una nuova tabella costituita dalle righe della prima tabella in ingresso congiunte con le righe della seconda che soddisfano una condizione specificata. Studenti (Matricola, Cognome, Nome, DataN, Indirizzo, Città, CodiceClasse) Valutazioni (CodiceValutazione, DataV, Voto, Materia, Matricola) Classi(CodiceClasse, Specializzazione) Professori(CodiceProfessore, Cognome, Nome, ClasseConcorso) Insegnano(CodiceProfessore, CodiceClasse, NumOre)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL Esempio Elencare gli studenti dellistituto con le rispettive valutazioni SELECT * FROM Studenti, Valutazioni WHERE Studenti.Matricola = Valutazioni.Matricola Elencare i nominativi degli studenti dellistituto con le rispettive classi SELECT Cognome, Nome, Specializzazione FROM Studenti, Classi WHERE Studenti.CodiceClasse = Classi.CodiceClasse
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL Interrogazioni nidificate Le interrogazioni nidificate prevedono lutilizzo di una sottointerrogazione allinterno di uninterrogazione più esterna. Una sottointerrogazione può restituire un solo valore o un insieme di valori.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL Esempio 1 Visualizzare i nominativi degli studenti che hanno conseguito in Matematica il voto massimo assegnato in Matematica SELECT Cognome, Nome FROM Studenti, Valutazioni WHERE Studenti.Matricola = Valutazioni.Matricola AND Materia = Matematica AND VOTO = (SELECT MAX (VOTO) FROM Valutazioni WHERE Materia = Matematica)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL Esempio 2 Visualizzare i nominativi degli studenti che frequentano classi con più di 30 alunni SELECT Cognome, Nome FROM Studenti WHERE CodiceClasse IN (SELECT CodiceClasse FROM Studenti GROUP BY CodiceClasse HAVING COUNT (*) > 30)
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL Esempio 3 Visualizzare, in ordine alfabetico, i nominativi dei professori che NON insegnano nella 3B informatica SELECT Cognome, Nome FROM Professori WHERE Codice.Professore NOT IN (SELECT CodiceProfessore FROM Insegnano, Classi WHERE Insegnano.CodiceClasse = Classi.CodiceClasse AND Classe = 3B AND Specializzazione = informatica) ORDER BY Cognome, Nome