CERCASI SPONSOR E DONAZIONI --- CERCASI SPONSOR E DONAZIONI --- CERCASI SPONSOR E DONAZIONI

mercoledì 11 aprile 2012

Esercizi in linguaggio SQL


Si scrivano i comandi del linguaggio SQL in relazione ai seguenti quesiti:

  1. Creare la tabella utenti e l’indice sulla chiave primaria.
  2. Creare la tabella prestiti e l’indice sulla chiave primaria.
  3. Creare la tabella libri e l’indice sulla chiave primaria.
  4. Creare la tabella editore e l’indice sulla chiave primaria.
  5. Create la tabella dewey e l’indice sulla chiave primaria.
  6. Visualizzare titolo e autore della tabella libri.
  7. Visualizzare l’elenco degli autori contenuti nella tabella libri senza ripetizioni.
  8. Visualizzare, senza ripetizioni, l’elenco delle province della tabella utenti.
  9. Visualizzare i codl dei libri presi in prestito.
  10. Visualizzare codl, titolo, autore dei libri presi in prestito.
  11. Visualizzare tutte le informazioni contenute nella tabella prestiti relative ai libri cbe sono stati restituiti.
  12. Visualizzare tutte le informazioni contenute nella tabella libri, relative ai libri di elaborazione dati oppure di informatica programmi.
  13. Visualizzare codl, titolo, autore dei libri dati in prestito e con prezzo superiore a £. 15.000.
  14. Visualizzare tutte le informazioni contenute nella tabella libri relative ai libri che non siano di ecologia, che abbiano prezzo inferiore a E. 10.000 e numero di pagine non superiore a 200.
  15. Visualizzare tutte le informazioni contenute nella tabella prestiti relative ai libri dati m prestito in data posteriore al 03-03-92 non ancora restituiti.
  16. Visualizzare tutte le informazioni contenute nella tabella libri, relativamente ai libri dati in prestito almeno una volta in data anteriore al 24-07-92 e restituiti.
  17. Visualizzare titolo e autore dei libri dati in prestito almeno due volte.
  18. Visualizzare tutte le informazioni contenute nella tabella libri, relative ai libri dati in prestito e che non siano di narrativa italiana.
  19. Visualizzare tutte le informazioni contenute nella tabella utenti, relative ai residenti nella provincia di Varese che abbiano preso in prestito almeno un libro.
  20. Ripetere l’esercizio precedente nell’ipotesi che, avendo preso in prestito almeno un libro, non l’abbiano ancora restituito.
  21. Visualizzare tutte le informazioni della tabella libri, ordinate secondo il prezzo e a parità di prezzo secondo il numero di pagine. (ordinamento crescente per il prezzo, decrescente per pag).
  22. Visualizzare tutte le informazioni contenute nella tabella libri, relative ai libri con prezzo non inferiore a £ 10.000, ordinate secondo valori decrescenti del prezzo.
  23. Visualizzare tutte le informazioni contenute nella tabella utenti, relative alle persone che hanno preso in prestito almeno un libro dopo il 03-04-92, ordinate secondo la provincia di provenienza e, a parità di provincia, secondo la città. (ordinamento crescente in entrambi i casi).
  24. Visualizzare tutte le informazioni contenute nella tabella prestiti, relative ai libri della casa editrice Einaudi non ancora restituiti.
  25. Visualizzare l’elenco degli autori (evitando le ripetizioni), dei libri prestati (ma non ancora restituiti), con prezzo non superiore a £. 15.000 e con numero di pagine compreso tra 150 e 200 (escluso gli estremi).
  26. Visualizzare l’elenco dei libri della casa editrice Etas, riguardanti la letteratura italiana, tedesca, francese.
  27. Visualizzare titolo e autore dei libri di narrativa italiana, pubblicati dopo il 1980 dalla casa editrice Mondadori.
  28. Visualizzare titolo e autore dei libri di narrativa francese dati in prestito più di una volta.
  29. Visualizzare tutte le informazioni contenute nella tabella utenti, relativamente ai residenti a Milano, Varese, Como che abbiano preso in prestito almeno un libro di Sciascia L.
  30. Collegare la tabella libri con la tabella prestiti e visualizzare titolo e autore della tabella libri e i corrispondenti datap e datar della tabella prestiti in modo da includere tutti i libri della tabella libri.
  31. Collegare la tabella libri con la tabella prestiti e visualizzare titolo e autore della tabella libri e i corrispondenti datap e datar della tabella prestiti in modo da includere solo i libri dati in prestito almeno una volta.
  32. Collegare la tabella prestiti con la tabella utenti e visualizzare tutte le informazioni relative ai libri presi in prestito da Ferrari Paolo.
  33. Collegare la tabella libri con la tabella dewey e visualizzare titolo, autore della tabella libri e il corrispondente nome della tabella dewey.
  34. Visualizzare, per ogni autore contenuto nella tabella libri, il nome dell’autore, il numero dei libri, la media dei prezzi e la media delle pagine scritte da uno stesso autore.

1
create table utenti ( codu char(2),
cognome char(20),
nome char(20),
citta char(10),
prov char(2) );
2
create table prestiti (codl char(2),
codu char(2),
datap date,
datar date) );
3
create table libri ( codl char(2),
titolo char(30),
autore char(30),
code char(2),
anno integer,
pag integer,
codd char(5),
prezzo integer) );
4
create table editore (code char(2),
nome char(30) );


5
create table dewey (code char(5),
nome char(30) );
6
select titolo, autore
from libri;
7
select distinct autore
from libri;
8
select distinct prov
from utenti;
9
select codl
from prestiti;

10
select codl, titolo, autore
from libri
where codl in (select codl
from prestiti);
11
select *
from prestiti
where datar>{01-01-01};

12
select *
from libri
where codd in
(select codd
from dewey
where nome=‘elaborazione dati’ or
nome=‘informatica programmi’);
13
select codl, titolo, autore
from libri
where codl in
(select codl
from prestiti)
and prezzo>15000;

14
select *
from libri
where not codd=
(select codd
from dewey
where nome=‘ecologia’)
and (prezzo <10000)
and (pag200);
15
select *
from prestiti
where datap>{03-03-92}
and datar ={01-01-01};

16
select * from libri
where codl in
(select codl
from prestiti
where datap<{24-07-92} and
not datar={01-01-01});
17
select titolo, autore
from libri
where codl in
(select codl
from prestiti
group by codl
having count(codl)>=2);
18
select *
from libri
where codl in (select codl from prestiti)
and not codd =
(select codd
from dewey
where nome=‘narrativa italiana’);
19
select *
from utenti
where prov=‘va’ and codu in
(select codu
from prestiti);

20
select *
from utenti
where prov = ‘Va’ and codu in
(select codu
from prestiti
where datar = {01-01-01});

21
select *
from libri
order by prezzo, pag desc;
22
select *
from libri
where prezzo10000
order by prezzo desc;
23
select *
from utenti
where codu in
(select codu
from prestiti
where datap>{03-04-92})
order by prov, citta;

24
select *
from prestiti
where codl=
(select codl
from libri where code=
(select code
from editore
where nome=‘Einaudi’))
and datar={01-01-01};
25
select autore
from libri
where codl in
(select codl
from prestiti
where datar={01-01-01})
and prezzo<=15000
and pag >150
and pag<200
group by autore;
26
select *
from libri
where code=
(select code
from editori
where nome=‘Etas’)
and codd in
(select codd
from dewey
where nome in (‘letteratura italiana’,
letteratura tedesca’, ‘letteratura francese’));
27
select titolo, autore
from libri
where codd=
(select codd
from dewey
where nome=‘narrativa italiana’)
and anno >1980
and code=
(select code
from editori
where nome=‘Mondadori’);
28
select titolo, autore
from libri
where codd=
(select codd
from dewey
where nome=‘narrativa francese’)
and codl in
(select codl
from prestiti
group by codl
having count(codl)>1);
29
select *
from utenti
where citta in(‘Milano’,’Varese’,’Como’)
and codu in
(select codu
from prestiti
where codl in
(select codl
from libri
where autore=‘Sciascia L.’));
30
select titolo, autore, datap, datar
from libri, prestiti
where libri.codl=prestiti.codl;
union
select titolo, autore,’----------------’,’--------’
from libri
where codl not in (select codl
from prestiti);
31
select titolo, autore, datap, datar
from libri, prestiti
where libri.codl=prestiti.codl;

32
select *
from prestiti, utenti
where prestiti.codl=utenti.codl
and utenti.cognome=‘Ferrari’
and utenti.nome=‘Paolo’;
33
select titolo, autore, nome
from libri, dewey
where libri.codd=dewey.codd;
34
select autore, count(codl), avg(prezzo), avg(pag)
from libri
group by autore;

Nessun commento:

Posta un commento