• Non ci sono risultati.

— Esempi di istruzioni SQL —Pag.

N/A
N/A
Protected

Academic year: 2021

Condividi "— Esempi di istruzioni SQL —Pag. "

Copied!
3
0
0

Testo completo

(1)

— Esempi di istruzioni SQL — Pag. di 1 3

Si supponga si avere le seguenti tabelle, dove Esami.MatricolaStudente è chiave esterna nella relazione Studenti (1;1) → Esami (0;N):

Studenti(Matricola, Cognome, Nome)

Esami(Id, MatricolaStudente, Materia, Data, Voto) ESEMPIO 1

Volendo visualizzare per ciascun voto conseguito negli esami dagli studenti la relativa frequenza (n.ro di esami in cui gli studenti hanno conseguito quel voto) scriveremo la seguente istruzione SQL:

SELECT Voto, COUNT(Voto) AS Frequenza FROM Esami

GROUP BY Voto ORDER BY Voto;

Un possibile risultato sarà:

+——————+———————————+

| Voto | Frequenza | +——————+———————————+

| 5 | 345 | +——————+———————————+

| 10 | 120 | +——————+———————————+

| … | … | +——————+———————————+

| 18 | 95 | +——————+———————————+

| … | … | +——————+———————————+

| 30 | 10 | +——————+———————————+

ESEMPIO 2

Se invece vogliamo solo le frequenza dei voti da 18 a 30 scriveremo:

SELECT Voto, COUNT(Voto) AS Frequenza FROM Esami

WHERE Voto>=18 GROUP BY Voto ORDER BY Voto;

oppure:

SELECT Voto, COUNT(Voto) AS Frequenza FROM Esami

GROUP BY Voto HAVING Voto>=18 ORDER BY Voto;

N.B. Quale delle due versioni è preferibile?

(2)

— Esempi di istruzioni SQL — Pag. di 2 3

ESEMPIO 3

Se si vuole ottenere la frequenza degli esami per il gruppo di voti da 18 a 20 scriveremo:

SELECT ‘Voti 18-20’ AS Gruppo, COUNT(Voto) AS Frequenza FROM Esami

WHERE Voto BETWEEN 18 AND 20 GROUP BY Voto

ORDER BY Voto;

Un possibile risultato sarà:

+————————————+———————————+

| Gruppo | Frequenza | +————————————+———————————+

| Voti 18-20 | 1452 | +————————————+———————————+

ESEMPIO 4

Per visualizzare e memorizzare la frequenza per i due gruppi di voti 18-20 e 21-23 utilizzeremo le seguenti istruzioni:

CREATE TABLE Voti(Gruppo VARCHAR(10) NOT NULL PRIMARY KEY, Frequenza INT);

INSERT INTO Voti(Gruppo, Frequenza)

SELECT ‘Voti 18-20’ AS Gruppo, COUNT(Voto) AS Frequenza FROM Esami

WHERE Voto IN (18,19,20) GROUP BY Voto

UNION

SELECT ‘Voti 21-23’ AS Gruppo, COUNT(Voto) AS Frequenza FROM Esami

WHERE Voto IN (21,22,23) GROUP BY Voto

ORDER BY 1;

Un possibile risultato sarà:

+————————————+———————————+

| Gruppo | Frequenza | +————————————+———————————+

| Voti 18-20 | 1452 | +————————————+———————————+

| Voti 21-23 | 746 | +————————————+———————————+

(3)

— Esempi di istruzioni SQL — Pag. di 3 3

ESEMPIO 5

Per visualizzare l’elenco alfabetico degli studenti con i relativi esami sostenuti è necessario collegare (join) le due tabelle Studenti ed Esami. Una prima rudimentale forma di join è quella che fa uso del prodotto cartesiano e del filtro sulle righe:

SELECT s.Cognome, s.Nome, e.Materia, e.Data, e.Voto FROM Studenti AS s, Esami AS e

WHERE s.Matricola=e.MatricolaStudente ORDER BY 1, 2;

Una versione più sofisticata ed efficiente è quella che fa esplicito uso della clausola JOIN:

SELECT s.Cognome, s.Nome, e.Materia, e.Data, e.Voto

FROM Studenti AS s INNER JOIN Esami AS e ON s.Matricola=e.MatricolaStudente ORDER BY 1, 2;

ESEMPIO 6

Si supponga di voler invece l’elenco alfabetico di tutti studenti e degli eventuali esami sostenuti. Questa volta occorrerà fare uso dell’inner join:

SELECT s.Cognome, s.Nome, e.Materia, e.Data, e.Voto FROM Studenti AS s LEFT OUTER JOIN Esami AS e

ORDER BY 1, 2;

ESEMPIO 7

Se infine vogliamo l’elenco alfabetico degli studenti che hanno sostenuto l’esame di Sistemi in data 17/10/2016 scriveremo:

SELECT s.Cognome, s.Nome, e.Materia, e.Data, e.Voto FROM Studenti AS s INNER JOIN Esami AS e

WHERE e.Materia=‘SISTEMI’ AND e.Data=‘2016-10-17’

ORDER BY 1, 2;

Riferimenti

Documenti correlati

[r]

tuzione in forma italiana dei cognomi delle famiglie della Venezia Tridentina ed il decreto Ministeriale 5 agosto 1926 che approva le istruzioni per la esecuzione del R. 1 di

Sulla base delle indicazioni contenute nell’accordo Stato/Regione del 10 Novembre 2016 è stata predisposta una nuova tabella per la valutazione del rischio che

136 CONFCOOPERATIVE PADOVA 136 CONFINDUSTRIA PADOVA 138 SALETTA SISTEMA PADOVA 142 SOCIALMENTE PRESEPI 143 PROVINCIA DI PADOVA 146 CAMERA DI COMMERCIO DI PADOVA 157 REGIONE

Gli studenti intenzionati a sostenere la prova di Biologia Applicata all'Attività Psichica dovranno iscriversi all'esame, sia utilizzando l'apposita funzione di segreteria

[r]

[r]

[r]