• Non ci sono risultati.

Basi di Dati Politecnico di Torino Esercizi di SQL

N/A
N/A
Protected

Academic year: 2021

Condividi "Basi di Dati Politecnico di Torino Esercizi di SQL"

Copied!
4
0
0

Testo completo

(1)

Basi di Dati

Politecnico di Torino Esercizi di SQL

Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):

IMPIEGATO (CodImp, Cognome, Nome, CodDip, Stipendio) DIPARTIMENTO (CodDip, Denominazione, Città)

TURNO (CodImp, Data, OraI, OraF) Esprimere le seguenti interrogazioni in SQL:

(a) Selezionare i codici e i cognomi degli impiegati il cui cognome inizia con la lettera A o la lettera B.

(b) Selezionare i cognomi degli impiegati che lavorano in dipartimenti di Torino, ordinati in ordine alfabetico.

(c) Selezionare tutti i dati dei turni degli impiegati che hanno uno stipendio maggiore di 10.000 e che lavorano in dipartimenti di Roma.

(d) Trovare il valore massimo degli stipendi erogati dai dipartimenti di Milano.

(e) Selezionare i codici dei dipartimenti che spendono più di 10 milioni in stipendi.

(f) Per ogni dipartimento di Torino, selezionare il codice del dipartimento e lo stipendio medio degli impiegati del dipartimento.

(g) Per ogni dipartimento di Torino che spende più di 100 milioni in stipendi, selezionare il codice, la denominazione e il massimo stipendio erogato dal dipartimento.

(h) Selezionare la denominazione dei dipartimenti con più di 100 impiegati.

(i) Selezionare i codici degli impiegati che ricevono uno stipendio maggiore della media degli stipendi del loro dipartimento.

(l) Selezionare il codice del dipartimento in cui lavorano sia Rossi che Bianchi.

(m) Selezionare i codici dei dipartimenti che non erogano stipendi maggiori di 10.000 euro.

(2)

Soluzioni

(a) Selezionare i codici e i cognomi degli impiegati il cui cognome inizia con la lettera A o la lettera B.

SELECT CodImp, Cognome FROM IMPEGATO I

WHERE Cognome LIKE ‘A%’

OR Cognome LIKE ‘B%’

(b) Selezionare i cognomi degli impiegati che lavorano in dipartimenti di Torino, ordinati in ordine alfabetico.

SELECT Cognome

FROM IMPEGATO I, DIPARTIMENTO D WHERE I.CodDip=D.CodDip

AND Città = ‘Torino’

ORDER BY Cognome

(c) Selezionare tutti i dati dei turni degli impiegati che hanno uno stipendio maggiore di 10.000 e che lavorano in dipartimenti di Roma.

SELECT T.CodImp, Data, OraI, OraF

FROM IMPEGATO I, DIPARTIMENTO D, TURNO T WHERE I.CodDip=D.CodDip AND T.CodImp = I.CodImp AND Stipendio > 10.000 AND Città = ‘Roma’

(d) Trovare il valore massimo degli stipendi erogati dai dipartimenti di Milano.

SELECT MAX(Stipendio)

FROM IMPEGATO I, DIPARTIMENTO D WHERE I.CodDip=D.CodDip

AND Città = ‘Milano’

(e) Selezionare i codici dei dipartimenti che spendono più di 10 milioni in stipendi.

SELECT CodDip FROM Impiegato GROUP BY CodDip

HAVING SUM(Stipendio) > 10.000.000

(3)

(f) Per ogni dipartimento di Torino, selezionare il codice del dipartimento e lo stipendio medio degli impiegati del dipartimento.

SELECT I.CodDip, AVG(Stipendio)

FROM IMPEGATO I, DIPARTIMENTO D WHERE I.CodDip=D.CodDip

AND Città = ‘Torino’

GROUP BY CodDip

(g) Per ogni dipartimento di Torino che spende più di 100 milioni in stipendi, selezionare il codice, la denominazione e il massimo stipendio erogato dal dipartimento.

SELECT I.CodDip, Denominazione, MAX(Stipendio) FROM IMPEGATO I, DIPARTIMENTO D

WHERE I.CodDip=D.CodDip AND Città = ‘Torino’

GROUP BY I.CodDip, Denominazione HAVING SUM(Stipendio) > 10.000.000

(h) Selezionare la denominazione dei dipartimenti con più di 100 impiegati.

SELECT Denominazione

FROM IMPEGATO I, DIPARTIMENTO D WHERE I.CodDip=D.CodDip

GROUP BY I.CodDip, Denominazione HAVING COUNT(*) > 100

(i) Selezionare i codici degli impiegati che ricevono uno stipendio maggiore della media degli stipendi del loro dipartimento.

SELECT CodDip FROM Impiegato I1

WHERE Stipendio > (SELECT AVG(Stipendio) FROM Impiegato I2

WHERE I2.CodDip = I1.CodDip)

(l) Selezionare il codice del dipartimento in cui lavorano sia Rossi che Bianchi.

SELECT CodDip FROM Impiegato

WHERE Cognome = ‘Rossi’

AND CodDip IN

(SELECT CodDip FROM Impiegato

WHERE Cognome = ‘Bianchi’)

(4)

(m) Selezionare i codici dei dipartimenti che non erogano stipendi maggiori di 10.000 euro.

SELECT CodDip FROM Dipartimento WHERE CodDip NOT IN

(SELECT CodDip FROM Impiegato

WHERE Stipendio > 10.000)

Riferimenti

Documenti correlati

(g) Per ogni dipartimento di Torino che spende più di 100 milioni in stipendi, selezionare il codice, la denominazione e il massimo stipendio erogato dal dipartimento. (h)

Per ogni dipartimento di Torino, selezionare il codice del dipartimento e lo stipendio medio degli impiegati dei dipartimenti CHE HANNO UNA MEDIA SUPERIORE AI 15.000 e che hanno

Per ogni dipartimento di Torino, selezionare il codice del dipartimento e lo stipendio medio degli impiegati dei dipartimenti CHE HANNO UNA MEDIA SUPERIORE AI 15.000 e che hanno

(c) Trovare i codici e i nomi dei dipendenti abilitati al volo su almeno due aerei in grado di coprire distanze superiori a 5000 Km e che siano abilitati al volo su qualche Boeing.

(c) Trovare i codici e i nomi dei dipendenti abilitati al volo su almeno due aerei in grado di coprire distanze superiori a 5000 Km e che siano abilitati al volo su qualche

(a) Trovare il codice e il nome delle riviste che hanno pubblicato almeno un articolo di

I caselli della rete autostradale sono identificati da un codice univoco all’interno dell’autostrada cui appartengono e sono caratterizzati dal nome e dal km autostradale presso

Le segnalazioni di insediamenti e ambiti urbani che costituiscono elementi di significato culturale e/o documentario sono rappresentate corne i beni di categoria I; la relati-