Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizi di informatica SQL, Esercizi di Elementi di Informatica

Esercizi di informatica di Structured Query Language (SQL), un linguaggio standardizzato per database basati sul modello relazionale (RDBMS), progettato per le seguenti operazioni: Creare e modificare schemi di database (DDL = Data Definition Language); inserire, modificare e gestire dati memorizzati (DML = Data Manipulation Language); Interrogare i dati memorizzati (DQL = Data Query Language); creare e gestire strumenti di controllo e accesso ai dati (DCL = Data Control Language).

Tipologia: Esercizi

2018/2019

Caricato il 28/02/2019

antony23federico91
antony23federico91 🇮🇹

4.1

(7)

12 documenti

1 / 20

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Esercizi su SQL
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Anteprima parziale del testo

Scarica Esercizi di informatica SQL e più Esercizi in PDF di Elementi di Informatica solo su Docsity!

Esercizi su SQL

Si consideri la base di dati definita dal seguente schema relazionale: Programma (Codice, NomeProgramma, Rete, Tipologia) Conduttore (NomeCond, CProgramma) Rilevazione (CodProg, Auditel) 1 ) Restituire l’indice Auditel del programma con codice ‘P 01 ’ SELECT Auditel FROM Rilevazione WHERE CodProg = ‘P01’

3) Restituire i nomi dei programmi con almeno due conduttori SELECT DISTINCT NomeProgramma FROM Programma P, Conduttore C 1 , Conduttore C WHERE P.Codice = C1.CProgramma AND P.Codice = C2.CProgramma AND C1.NomeCond > C2.NomeCond

4) Restituire i nomi dei programmi con un solo conduttore Strategia risolutiva: togliere ( EXCEPT ) i programmi con almeno 2 conduttori (query precedente) dai programmi con almeno un conduttore: (SELECT DISTINCT NomeProgramma FROM Programma, Conduttore WHERE Codice = CProgramma) EXCEPT (SELECT DISTINCT NomeProgramma FROM Programmi P, Conduttore C1, Conduttore C WHERE P.Codice = C1.CProgramma AND P.Codice = C2.CProgramma AND C1.NomeCond > C2.NomeCond)

2 ) Restituire i codici dei partiti con percentuale di favorevoli del 30 %. SELECT CodPart FROM Sondaggio WHERE PercFavorevoli = 30

3 ) Restituire i nomi dei partiti con percentuale di favorevoli del 30 %. SELECT NomePartito FROM Partito P, Sondaggio S WHERE P.Codice = S.CodPart AND S.PercFavorevoli = 30

5 ) Restituire i nomi dei partiti con esattamente due candidati. Strategia risolutiva: togliere ( EXCEPT ) i partiti con almeno 3 candidati dai programmi con almeno due candidati: (SELECT DISTINCT NomePartito FROM Partito P, Candidato C 1 , Candidato C 2 WHERE C 1 .CPartito = P.Codice AND C 2 .CPartito = P.Codice AND C 1 .Citta > C 2 .Citta) EXCEPT (SELECT DISTINCT NomePartito FROM Partito P, Candidato C 1 , Candidato C 2 , Candidato C 3 WHERE C 1 .CPartito = P.Codice AND C 2 .CPartito = P.Codice AND C 3 .CPartito = P.Codice AND C 1 .Citta > C 2 .Citta AND C 2 .Citta > C 3 .Citta)

Si consideri la base di dati definita dal seguente schema relazionale: Aeroporto (Città, Nazione, NumPiste) Volo (IdVolo, GiornoSett, CittàPart, OraPart, CittàArr, OraArr, TipoAereo) Aereo (TipoAereo, NumPasseggeri, QtaMerci) 1 ) Trovare le città da cui partono voli diretti a ‘Roma’, ordinate alfabeticamente SELECT DISTINCT CittàPar FROM Volo WHERE CittàArr= ‘Roma’ ORDER BY CittàPar

3 ) Di ogni volo misto (merci e passeggeri) estrarre il codice e i dati relativi al trasporto SELECT IdVolo, NumPasseggeri, QtaMerci FROM Volo V, Aereo A WHERE V.TipoAereo = A.TipoAereo AND NumPasseggeri > 0 AND QtaMerci > 0

4 ) Trovare l’aeroporto italiano con il maggior numero di piste SELECT Città, NumPiste FROM Aeroporto WHERE Nazione=‘Italia’ AND NumPiste = (SELECT MAX(numPiste) FROM Aeroporto WHERE Nazione=‘Italia’ )

Si consideri la base di dati definita dal seguente schema relazionale: Impiegato (CodFisc,Nome,Cognome,Recapito,Dip) Assegnazione (Imp,Prog) Progetto (CodP,NomeP,Budget) Dipartimento (CodD,NomeD,Indirizzo,Citta) 1 ) Trovare il nome delle persone con cognome ‘Rossi’. SELECT Nome FROM Impiegato WHERE Cognome = 'Rossi'

2 ) Trovare il nome e cognome degli impiegati con recapito ‘ 0984 123456 ’ SELECT Nome, Cognome FROM Impiegato WHERE Recapito = ‘ 0984 123456 ’

4 ) Per ogni progetto a cui sono assegnati almeno due impiegati, si recuperi il numero del progetto e il nome del progetto. SELECT DISTINCT P.CodP, P.NomeP FROM Progetto P, Assegnazione A 1 , Assegnazione A 2 WHERE A 1 .Prog = P.CodP AND A 2 .Prog = P.CodP AND A 1 .Imp > A 2 .Imp

5 ) Per ogni progetto a cui sono assegnati al più due impiegati, si recuperi il numero del progetto e il nome del progetto. Strategia risolutiva: togliere ( EXCEPT ) i progetti con almeno 3 impiegati dall’elenco di tutti i progetti: (SELECT DISTINCT P.CodP, P.NomeP FROM Progetto P) EXCEPT (SELECT DISTINCT P.CodP, P.NomeP FROM Progetto P, Assegnazione A 1 , Assegnazione A 2 , Assegnazione A 3 WHERE A 1 .Prog = P.CodP AND A 2 .Prog = P.CodP AND A 3 .Prog = P.CodP AND A 1 .Imp > A 2 .Imp AND A 2 .Imp > A 3 .Imp)