• Non ci sono risultati.

ESERCITAZIONI DI BASI DI DATI INTERROGAZIONE DI DATABASE RELAZIONALE IN SQL A.A. 2008-‘09

N/A
N/A
Protected

Academic year: 2021

Condividi "ESERCITAZIONI DI BASI DI DATI INTERROGAZIONE DI DATABASE RELAZIONALE IN SQL A.A. 2008-‘09"

Copied!
3
0
0

Testo completo

(1)

ESERCITAZIONI DI BASI DI DATI

INTERROGAZIONE DI DATABASE RELAZIONALE IN SQL A.A. 2008-‘09

Lorenzo Sarti

1) Visualizzare, per ogni candidato, il cognome, il nome, la data di nascita ed il luogo di nascita

2) Visualizzare, per ogni candidato, il cognome, il nome, ed il numero di telefono

3) Visualizzare, per ogni candidato, il cognome, il nome, ed il numero di telefono, includendo nell’elenco anche i candidati di cui non si conosce il numero di telefono

4) Visualizzare, per ogni candidato, i titoli di studio conseguiti, includendo la data, il voto e il luogo in cui i titoli sono stati conseguiti

5) Visualizzare l’elenco dei candidati che hanno conseguito la laurea magistrale 6) Visualizzare i lavori svolti attualmente dai candidati

7) Visualizzare l’elenco dei candidati che hanno conseguito la laurea magistrale con un voto maggiore di 100

8) Visualizzare il voto medio dei candidati

9) Visualizzare il numero di lavori effettuato da ogni candidato

10) Visualizzare i candidati che hanno svolto più di un lavoro durante la loro carriera lavorativa 11) Visualizzare nome e cognome dei candidati che non hanno precedenti esperienze lavorative

(utilizzare le query nidificate)

12) Visualizzare nome e cognome dei candidati che hanno almeno due titoli di studio 13) Visualizzare un elenco di tutti i nomi e cognomi dei candidati che hanno almeno

un’esperienza lavorativa (N.B. se il candidato Mario Rossi ha un’esperienza lavorativa, nella tabella risultato dovrà apparire una riga con il valore Mario ed una riga con il valore Rossi – Suggerimento: utilizzare l’operatore union)

14) Creare una vista contenente codice, nome e cognome dei candidati che hanno avuto un’esperienza lavorativa conclusa

15) Ripetere l’interrogazione 11 utilizzando la vista create al punto 14 Soluzioni:

1) select cognome, nome, datanascita, luogonascita from candidato

2) select cognome, nome, numero from candidato, telefono

where candidato.codice=telefono.candidato

3) select cognome, nome, numero

from candidato left join telefono on candidato.codice = telefono.candidato

4) select cognome, nome, descrizione, data, voto, istituto from candidato, istruzione, titolostudio

where (candidato.codice = istruzione.candidato AND istruzione.titolo = titolostudio.codice)

5) select cognome, nome

from candidato, istruzione, titolostudio

where candidato.codice=istruzione.candidato and istruzione.titolo = titolostudio.codice and titolostudio.descrizione = 'laurea magistrale'

(2)

6) select cognome,nome,mansione from candidato,esperienza,attivita

where candidato.codice = esperienza.candidato and esperienza.attivita = attivita.codice and esperienza.datafine is null

7) select cognome, nome

from candidato, istruzione, titolostudio

where candidato.codice=istruzione.candidato and istruzione.titolo = titolostudio.codice and

titolostudio.descrizione like 'laurea magistrale' and istruzione.voto > 100

8) select avg(voto) from istruzione

9) select cognome, nome, count(*) from candidato,esperienza

where candidato.codice=esperienza.candidato group by cognome,nome

10) select cognome, nome, count(*) from candidato,esperienza

where candidato.codice=esperienza.candidato group by cognome,nome

having count(*)>1

11) select cognome,nome from candidato where candidato.codice <> all

(select candidato from esperienza group by candidato)

12) select cognome,nome from candidato,istruzione

where candidato.codice=istruzione.candidato group by cognome,nome

having count(*)>=2 oppure

select cognome,nome from candidato where codice = any(

select candidato from istruzione group by candidato

having count(*)>=2)

13) select cognome as nomeOppureCognome from candidato where codice = any (select candidato from esperienza)

(3)

14) create view precedentiesperienze as select distinct codice, cognome, nome from candidato,esperienza

where candidato.codice = esperienza.candidato and esperienza.datafine is not null

15) select cognome,nome from candidato

where codice <> all

(select codice from precedentiesperienze)

Riferimenti

Documenti correlati

1. Un corpo rigido piano `e formato da un rettangolo omogeneo ABCD di massa 3m e lati AB = 4ℓ e AD = ℓ; da un quadrato di lato ℓ e massa 2m con un vertice in D; da un’asta EF ,

Un corpo rigido piano `e formato da un semidisco di raggio R e massa 10m e da due aste, AB e BC, saldate agli estremi del diametro AC e tra loro ortogonalmente in B, di masse 15m e

In un piano verticale, un’asta omogenea AB di lunghezza 2R e massa trascurabile reca ai propri estremi due punti materiali—A, di massa 3m e B di massa 2m—ed `e libera di ruotare

Il disco asportato viene ricollocato in modo da essere tangente sia al disco forato che alla retta r mentre, lungo il diametro del foro inclinato di π/3 rispetto all’orizzontale,

Infine, l’estremo A del diametro OA `e attratto da una molla ideale di costante mg/R verso il punto H di massa nulla mobile su una guida orizzontale passante per O, in modo che AH

Un corpo rigido piano `e formato da un anello di massa 2m e raggio R, tangente in un punto A ad una retta orizzontale r; da un quadrato di massa 3m, lato R, tangente all’anello in E

In un piano verticale, due aste AB e BC, di ugual massa m e ugual lunghezza 2ℓ sono incernierate tra loro nell’estremo comune B, mentre A `e incernierato ad un punto fisso A di

rispetto all’orizzontale, appoggiata in L ad una lamina una lamina poligonale ABCDEF di massa 3m con lati AB = AF = 4ℓ, BC = CD = DE = EF = 2ℓ ed avente i suoi lati CD e DE tangenti