Sei sulla pagina 1di 6

Esercizi eserciziario Select

 
Es. 1
Clienti=(id_cliente, cognome, nome, citta, salario, eta)
 
1. SELECT cognome FROM Clienti
2. SELECT nome FROM Clienti
3. SELECT cognome, nome FROM Clienti
4. SELECT cognome, nome, citta FROM Clienti
5. SELECT * FROM Clienti

Es. 2
Clienti=(id_cliente, cognome, nome, citta, salario, eta)
 
1. SELECT nome, cognome FROM Clienti WHERE salario > 3000
2. SELECT cognome, nome FROM Clienti WHERE citta = "Rimini"
3. SELECT cognome, nome FROM Clienti WHERE salario > 3000 AND citta = "Rimini"
4. SELECT cognome, nome, salario FROM Clienti WHERE eta >= 20 AND eta <= 35 (Between)
5. SELECT cognome, nome, salario FROM Clienti WHERE citta = "Rimini" AND (eta < 20 OR eta > 30)

Es. 3
Clienti=(id_cliente, cognome, nome, citta, salario, eta)
 
1. SELECT MAX(salario) FROM Clienti
2. SELECT AVG(eta) FROM Clienti
3. SELECT MAX(salario) FROM Clienti WHERE citta = "Rimini"
4. SELECT MAX(salario) FROM Clienti WHERE eta > 25 AND eta < 40
5. SELECT MIN(salario) FROM Clienti WHERE citta = "Rimini" AND (eta >= 25 AND eta <= 40)
6. SELECT COUNT(*) FROM Clienti WHERE eta < 25 OR eta > 35

Es. 4
Clienti=(id_cliente, cognome, nome, citta, salario, eta)
 
1. SELECT AVG(eta) FROM clienti
2. SELECT AVG(eta), citta FROM clienti GROUP BY citta
3. SELECT MAX(salario) FROM clienti WHERE citta="Rimini"
4. SELECT citta, COUNT(*), AVG(eta) FROM clienti GROUP BY citta

Es. 5
Clienti=(id_cliente, cognome, nome, citta, salario, eta)
 
1. SELECT AVG(eta), citta FROM clienti GROUP BY citta HAVING AVG(eta) > 30
2. SELECT citta, MAX(salario) FROM clienti GROUP BY citta HAVING AVG(eta) < 35
3. SELECT citta, AVG(eta), AVG(salario) FROM clienti GROUP BY citta HAVING COUNT(*) >= 2 AND (eta
> 20 AND eta < 40)
 
Es. 6
Clienti=(Cod_cli,Cognome, Nome, Citta, Salario, Eta)
Prenot=(Cod_cli, Cod_alb, Camera, Giorni, Acconto)
Alberghi=(Cod_alb, Nome, Citta )
 
 Es. 7
 
Clienti=(Cod_cli,Cognome, Nome, Citta, Salario, Eta)
Prenot=(Cod_cli, Cod_alb, Camera, Giorni, Acconto)
Alberghi=(Cod_alb, Nome, Citta)
 
1. SELECT clienti.*
FROM clienti JOIN prenot ON clienti.cod_cli = prenot.cod_cli
WHERE camera = 25
 
2. SELECT *
FROM clienti JOIN prenot ON clienti.cod_cli = prenot.cod_cli
WHERE eta >= 25 AND eta <= 40
 
3. SELECT prenot.*
FROM clienti JOIN prenot ON clienti.cod_cli = prenot.cod_cli
WHERE citta = Milano
 
4. SELECT cognome, clienti.nome, acconto, camera
FROM clienti JOIN prenot ON clienti.cod_cli = prenot.cod_cli
WHERE acconto > 100 AND eta > 25
 
5. SELECT alberghi.nome, clienti.nome, cognome, clienti.citta
FROM alberghi JOIN prenot ON alberghi.cod_alb = prenot.cod_alb
JOIN clienti ON prenot.cod_cli = clienti.cod_cli
HAVING acconto > AVG(acconto)
 
6. SELECT alberghi.nome, cognome, clienti.nome, clienti.citta
FROM alberghi JOIN prenot ON alberghi.cod_alb = prenot.cod_alb
JOIN clienti ON prenot.cod_cli = clienti.cod_cli
ORDER BY giorni DESC
LIMIT 0,4 DESC = dal più grande al più piccolo
 
Es. 8
 
AEROPORTO (Città, Nazione,NumPiste)
VOLO(IdVolo, GiornoSett,CittàPart,OraPart,CittàArr,OraArr,TipoAereo)
AEREO(TipoAereo,NumPasseggeri,QtaMerci)
 
1. SELECT citta
FROM aeroporto
WHERE numpiste IS null
 
2. SELECT A1.nazione, A2.nazione
FROM aeroporto AS A1 JOIN volo ON A1.citta = volo.cittapart JOIN aeroporto AS A2 ON A2.citta =
volo.cittaarr
WHERE idvolo = 2
 
3. SELECT tipoaereo
FROM volo
WHERE cittapart = 'Torino'
 
4. SELECT volo.tipoaereo, aereo.numpasseggeri
FROM volo LEFT JOIN aereo ON volo.tipoaereo = aereo.tipoaereo
WHERE cittapart = 'Torino' 
5. SELECT volo.cittapart
FROM aeroporto AS A1 JOIN volo ON cittapart = A1.citta JOIN aeroporto AS A2 on cittaarr = A2.citta
WHERE A1.nazione <> A2.nazione
 
6. SELECT cittapart
FROM volo
WHERE cittaarr = 'Bologna'
ORDER BY cittapart
 
7. SELECT COUNT(*)
FROM volo JOIN aeroporto ON cittaarr = citta
WHERE cittapart = 'Napoli' AND giornosett = 'Giovedì' AND nazione <> 'Italia'
 
8. SELECT COUNT(*), cittapart
FROM volo JOIN aeroporto ON cittaarr = citta
GROUP BY citta
WHERE nazione <> 'Italia'
 
9. SELECT cittapart
FROM volo JOIN aeroporto AS A1 ON A1.citta = cittapart JOIN aeroporto AS A2 ON cittaarr = A2.citta
WHERE A1.nazione = 'Francia' and A2.nazione = 'Italia'
HAVING COUNT(*) > 20

1- elenco degli alunni ordinati per cognome


2- elenco degli alunni per una data classe
3- elenco delle assenze per tutti gli alunni di una determinata classe
4- elenco delle asssenze di un alunno
5- totale assenze per classe
6- totale assenze per specializzazione
7- alunni che hanno maggior numero di assenze

1- SELECT * FROM alunno ORDER BY cognome

2- SELECT alunno.nome, alunno.cognome, classe.nome FROM alunno INNER JOIN classe ON alunno.classe =
classe.id_classe ORDER BY classe.nome

3- SELECT assenza.data, alunno.nome, alunno.cognome, classe.nome FROM `assenza` INNER JOIN alunno
ON assenza.cf = alunno.cf INNER JOIN classe ON alunno.classe = classe.id_classe WHERE classe.nome =
'5AINF'

4- SELECT assenza.data, alunno.nome, alunno.cognome FROM assenza INNER JOIN alunno ON assenza.cf =
alunno.cf WHERE alunno.nome = 'Alessandro' AND alunno.cognome = 'Bertozzi'

5- SELECT COUNT(*) FROM assenza INNER JOIN alunno ON assenza.cf = alunno.cf INNER JOIN classe ON
alunno.classe = classe.id_classe WHERE classe.nome = '5AINF'

6- SELECT COUNT(*) FROM assenza INNER JOIN alunno ON assenza.cf = alunno.cf INNER JOIN classe ON
alunno.classe = classe.id_classe INNER JOIN specializzazione ON classe.specializzazione =
specializzazione.id_specializzazione WHERE specializzazione.specializzazione = 'Informatica'
7- SELECT COUNT(assenza.data) AS assenze, alunno.nome, alunno.cognome FROM assenza INNER JOIN
alunno ON assenza.cf = alunno.cf GROUP BY assenza.cf ORDER BY COUNT(assenza.data) DESC LIMIT 0,4

Nome, cognome, numeri di telefono di quelli che hanno professione Idraulico:


 
SELECT clienti.nome, clienti.cognome, numero_cliente.numero
FROM clienti
JOIN clienti_professione ON clienti_professione.cf = clienti.cf
JOIN professioni ON professioni.id_professione = clienti_professione.professione
JOIN numero_cliente ON numero_cliente.cf = clienti.cf
WHERE professioni.professione = "Idraulico";
 
Nome, cognome, numero di telefono di quelli che hanno più di un numero di telefono:
 
SELECT clienti.nome, clienti.cognome, COUNT(numero_cliente.numero)
FROM clienti
JOIN numero_cliente ON numero_cliente.cf = clienti.cf
GROUP BY clienti.cf HAVING COUNT(numero_cliente.numero) > 1
 
Nome, cognome, numero di telefono di
quelli che hanno più di una professione:
 
SELECT clienti.nome, clienti.cognome,
COUNT(clienti_professione.professione)
FROM clienti
JOIN clienti_professione ON
clienti_professione.cf = clienti.cf
GROUP BY clienti.cf HAVING
COUNT(clienti_professione.professione) > 1
SELECT rappresentanti.nome, max(fatture.importo) FROM rappresentanti join clienti on
rappresentanti.id_rappresentante = clienti.id_rappresentante join fatture on clienti.id_cliente =
fatture.id_cliente

SELECT clienti.id_cliente, clienti.nome FROM clienti join fatture on clienti.id_cliente = fatture.id_cliente


HAVING sum(fatture.importo) > 100

SELECT rappresentanti.nome, rappresentanti.cognome FROM rappresentanti join clienti on


rappresentanti.id_rappresentante = clienti.id_rappresentante WHERE clienti.nome = 'Nicola' and
clienti.cognome = 'Bianchi'

Dato il seguente schema:


AEROPORTO(Città, Nazione,NumPiste)
VOLO(IdVolo,GiornoSett,CittàPart,OraPart,CittàArr,OraArr,TipoAereo)
AEREO(TipoAereo,NumPasseggeri,QtaMerci)
scrivere le interrogazioni SQL che permettono di determinare:
1. Le città con un aeroporto di cui non è noto il numero di piste;
2. Le nazioni da cui parte e arriva il volo con codice AZ274;
3. I tipi di aereo usati nei voli che partono da Torino;
4. I tipi di aereo e il corrispondente numero di passeggeri per i tipi di aereo usati nei voli che partono
da Torino. Se la descrizione dell'aereo non è disponibile, visualizzare solamente il tipo;
5. Le città da cui partono voli internazionali;
6. Le città da cui partono voli diretti a Bologna, ordinate alfabeticamente;
7. Il numero di voli internazionali che partono il giovedì da Napoli;
8. Il numero di voli internazionali che partono ogni settimana da città italiane (farlo in due modi, facendo
comparire o meno nel risultato gli aeroporti senza voli internazionali);
9. Le città francesi da cui partono più di venti voli alla settimana diretti in Italia;
10. Gli aeroporti italiani che hanno solo voli interni.
11. Le città che sono servite dall'aereo caratterizzato dal massimo numero di passeggeri;

1. select Città from AEROPORTO where NumPiste is NULL

2. select A1.Nazione, A2.Nazione from AEROPORTO as A1 join VOLO on A1.Città=CittàArr join AEROPORTO
as A2 on CittàPart=A2.Città where IdVolo= ‘AZ274’

3. select TipoAereo from VOLO where CittàPart=’Torino’

4. select VOLO.TipoAereo, NumPasseggeri from VOLO left join AEREO on VOLO.TipoAereo=aereo.TipoAereo


where CittàPart= ‘Torino’

5. select CittàPart from AEROPORTO as A1 join VOLO on CittàPart=A1.Città join AEROPORTO as A2 on


CittàArr=A2.Città where A1.Nazione <> A2.Nazione

6. select CittàPart from VOLO where CittàArr= ‘Bologna’ order by CittàPart

7. select count(*) from VOLO join AEROPORTO on CittàArr=Città where CittàPart = ‘Napoli’ and Nazione <>
‘Italia’ and GiornoSett= ‘Giovedì’

8.
a) select count(*), CittàPart from AEROPORTO as A1 join VOLO on A1.Città=CittàPart join AEROPORTO as A2
on CittàArr=A2.Città where A1.Nazione=’Italia’ and A2.Nazione <> ‘ Italia’ group by CittàPart
b) select count(CittàArr) from AEROPORTO as A1 join VOLO on A1.Città=CittàPart join AEROPORTO as A2 on
CittàArr=A2.Città where A1.Nazione=’Italia’ and A2.Nazione <> ‘ Italia’ group by CittàPart

9. select CittàPart from AEROPORTO as A1 join VOLO on A1.Città=CittàPart join AEROPORTO as A2 on


CittàArr=A2.Città where A1.Nazione=’Francia’ and A2.Nazione= ‘Italia’ group by CittàPart Having count(*)
>20

10.
select CittàPart from VOLO join AEROPORTO on CittàPart=Città where Nazione = ‘Italia’ except select
CittàPart from AEROPORTO as A1 join VOLO on A1.Città=CittàPart join AEROPORTO as A2 on
CittàArr=A2.Città where (A1.Nazione=’ Italia ’ and A2.Nazione<>’ Italia ’ )

10. select CittàPart from VOLO join AEREO on VOLO.TipoAereo=AEREO.TipoAereo where


NumPasseggeri=(select max(NumPasseggeri) from AEREO ) union select CittàArr from VOLO join
AEREO on VOLO.TipoAereo=AEREO.TipoAereo where NumPasseggeri=( select max(NumPasseggeri)
from AEREO )

Banca del tempo (es. pre-verifica)


 
Socio = (cf, nome, cognome, telefono, id_zona)
Tipo_Prestazione = (id_tipo_prestazione, prestazione)
Prestazione = (id_prestazione, id_tipo_prestazione, socio_prestatore, socio_ricevitotre, tempo, data)
Zone_BdT = (id_zona, zona, mappa)
Socio_Prestazioni = (cf, id_prestazione)

Potrebbero piacerti anche