Si scrivano i comandi del linguaggio SQL in relazione ai seguenti quesiti:
- Creare la tabella utenti e l’indice sulla chiave primaria.
- Creare la tabella prestiti e l’indice sulla chiave primaria.
- Creare la tabella libri e l’indice sulla chiave primaria.
- Creare la tabella editore e l’indice sulla chiave primaria.
- Create la tabella dewey e l’indice sulla chiave primaria.
- Visualizzare titolo e autore della tabella libri.
- Visualizzare l’elenco degli autori contenuti nella tabella libri senza ripetizioni.
- Visualizzare, senza ripetizioni, l’elenco delle province della tabella utenti.
- Visualizzare i codl dei libri presi in prestito.
- Visualizzare codl, titolo, autore dei libri presi in prestito.
- Visualizzare tutte le informazioni contenute nella tabella prestiti relative ai libri cbe sono stati restituiti.
- Visualizzare tutte le informazioni contenute nella tabella libri, relative ai libri di elaborazione dati oppure di informatica programmi.
- Visualizzare codl, titolo, autore dei libri dati in prestito e con prezzo superiore a £. 15.000.
- 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.
- Visualizzare tutte le informazioni contenute nella tabella prestiti relative ai libri dati m prestito in data posteriore al 03-03-92 non ancora restituiti.
- 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.
- Visualizzare titolo e autore dei libri dati in prestito almeno due volte.
- Visualizzare tutte le informazioni contenute nella tabella libri, relative ai libri dati in prestito e che non siano di narrativa italiana.
- Visualizzare tutte le informazioni contenute nella tabella utenti, relative ai residenti nella provincia di Varese che abbiano preso in prestito almeno un libro.
- Ripetere l’esercizio precedente nell’ipotesi che, avendo preso in prestito almeno un libro, non l’abbiano ancora restituito.
- 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).
- Visualizzare tutte le informazioni contenute nella tabella libri, relative ai libri con prezzo non inferiore a £ 10.000, ordinate secondo valori decrescenti del prezzo.
- 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).
- Visualizzare tutte le informazioni contenute nella tabella prestiti, relative ai libri della casa editrice Einaudi non ancora restituiti.
- 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).
- Visualizzare l’elenco dei libri della casa editrice Etas, riguardanti la letteratura italiana, tedesca, francese.
- Visualizzare titolo e autore dei libri di narrativa italiana, pubblicati dopo il 1980 dalla casa editrice Mondadori.
- Visualizzare titolo e autore dei libri di narrativa francese dati in prestito più di una volta.
- 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.
- 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.
- 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.
- Collegare la tabella prestiti con la tabella utenti e visualizzare tutte le informazioni relative ai libri presi in prestito da Ferrari Paolo.
- Collegare la tabella libri con la tabella dewey e visualizzare titolo, autore della tabella libri e il corrispondente nome della tabella dewey.
- 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