Clausola From
- Trova gli studenti iscritti a inf con cognome Rossi Select *From studWhere C='Rossi' and CdL='Inf';
- Trova gli studenti iscritti a inf. N_C, media esami Select avg(V), N_CFrom (Select * from stud where CdL='Inf') S1 join Esup on S1.mat=EcmatGroup by S1.mat, N_C
Clausola Where
- Trova tutti gli studenti che sono nati lo stesso giorno di mat='123' Select *From studWhere DN=(Select DN From stud Where mat='123')
- Trova tutti gli studenti che sono nati lo stesso giorno di mat='123' e della stessa provincia di mat='12X' Select *From studWhere DN=(Select DN From stud Where mat='123')And PR=(Select PR From stud Where mat='124')
Clausola FROM
- Trova gli studenti iscritti in INF con cognome Rossi
- Trova gli studenti iscritti in INF, N_C, media esami
Clausola WHERE
- Trova tutti gli studenti che sono nati lo stesso giorno di mat='123'
- Trova tutti gli studenti che sono nati lo stesso giorno di mat='123' e dello stesso provincia di mat='124'
CLAUSOLA HAVING
→ Quanti STUD ci sono nella stessa provincia di MAT='123'
SELECT COUNT * FROM STUD GROUP BY PR HAVING PR = ( SELECT PR FROM STUD WHERE MAT='123' )ESERCIZIO
→ Per ogni studente che ha fatto + di 2 esami, mostra il suo voto max
SELECT MAX(VOTO) FROM STUD JOIN ESUP ON MAT=C.MAT GROUP BY MAT HAVING COUNT(*) > 2→ Per ogni studente che ha fatto + di 2 esami (mostra nome e cognome) e che ha un voto max maggiore del voto max di Matteo Rossi.
SELECT N,C FROM STUD JOIN ESUP ON MAT=C.MAT GROUP BY MAT,N,C HAVING COUNT(*) > 2 AND MAX(V) > ( SELECT MAX(V) FROM ESUP WHERE MAT='123' )VALORI MANCANTI
Se ho una somma x1+x2+x3+x4, con alcuni valori NULL, il risultato è un NULL. Lo basta un solo valore sconosciuto.
In SQL ci sono alcune funzioni come: SUM, AVG, MAX, MIN, COUNT, in queste operazioni il database esclude i valori NULL perché ha difficoltà a gestirli.
SELECT AVG(V) FROM E.SUP WHERE MAT='123';SELECT SUM(V)/COUNT(*) FROM ESUP WHERE MAT='123';Lezione di laboratorio 12.05.2022
- Trovare gli impiegati che hanno più di 2 familiari a carico e che lavorano per il reparto "Logistica"
- Trovare m,c, del supervisore che supervisiona il max num. di impiegati:
Lezione 18
17/05/2022
Nested Query (riepilogo lez. precedente)
- Media voti studenti raggruppati per pronuncia
può essere considerata come tabella e quindi essere innestata in una clausula (from, where, having) di un'altra query.
Fino a che livello di profondità possiamo arrivare?
- È possibile creare un vero albero di query
Trovare gli stud. che hanno lo stesso cognome dello stud. che ha preso voto max. a BD.
Select * From Stud Where (Select Cognome From Stud s Where Ne = ‘BD’ and V = (Select Max(u) From Esame Where Ne = ‘BD’));Se nelle where ci fossero stati un insieme di valori, si sarebbe dovuti in
un errore perché non è possibile confrontare una sola tupla letta con un
insieme dei valori. Esistono perciò alcuni comandi come:
- IN — Il valore è nella {…}, implicito confronto di uguaglianza:
Where Cognome IN {….,….,…}
- ANY — Connettivo anche confronti in disuguaglianza
- ALL — Non è possibile la scrittura Cognome = ALL {….,…}
-
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 1)…
-
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 2)…
-
Riassunto esame Basi di dati, Prof. Persia, libro consigliato Sistemi di basi di dati e applicazioni, Angelo Chiane…
-
Riassunto esame Algoritmi e strutture dati, Prof. Cabodi Giampiero, libro consigliato Appunti di Algoritmi e strutt…