Estratto del documento

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
Select *From studWhere C='Rossi' and Col='inf';Select *From (Select * from stud where Col='inf')Where C='Rossi';
  • Trova gli studenti iscritti in INF, N_C, media esami
Select AVG(V), N_CFrom (Select * from stud where Col='inf') S1 Join Esup On S1.Mat=EsC.MatGroup 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 dello stesso provincia di mat='124'
Select *From studWhere DN=(Select DN From stud Where Mat='123')and PR=(Select PR From stud Where 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"
SELECT M.C.F., Max (ID.Nome), COUNT (CF) AS Numero_Familiar, Max (ID.NumeroRepartimento)FROM ( Impiegato l JOIN Familiari e_corso FC ON l.CF= FC.cf_impiegato ) JOIN Dipartimento D ON D.numero_dipartimento = ID.numero_repartimentoGROUP BY M.C.F, ID.Nome_dipartimento HAVING COUNT (*) > 2 AND Nome_dipartimento = 'Logistica' ;
  • Trovare m,c, del supervisore che supervisiona il max num. di impiegati:
SELECT Sup.CF , MAX (Sup.nome), MAX (Sup.cognome),FROM Impiegato IS JOIN Impiegato Sup ON IS_CF_supervisore = Sup_cf GROUP BY Sup.cf

Lezione 18

17/05/2022

Nested Query (riepilogo lez. precedente)

  • Media voti studenti raggruppati per pronuncia
SELECT AVG(v) , PR FROM STUD JOIN ESUP ON MAT= CARD GROUP BY P_I;

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 {….,…}
Anteprima
Vedrai una selezione di 5 pagine su 20
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 3), Albano-Ghelli-Orsini Pag. 1 Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 3), Albano-Ghelli-Orsini Pag. 2
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 3), Albano-Ghelli-Orsini Pag. 6
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 3), Albano-Ghelli-Orsini Pag. 11
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Riassunto esame Basi di dati, Prof. Maratea Antonio, libro consigliato Fondamenti di Basi di Dati (Appunti Parte 3), Albano-Ghelli-Orsini Pag. 16
1 su 20
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche MAT/05 Analisi matematica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher vincenzobucciero01 di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Napoli - Parthenope o del prof Maratea Antonio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community