Il 0% ha trovato utile questo documento (0 voti)
10 visualizzazioni5 pagine

Query Biblioteca

query

Caricato da

alexbassotti
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
10 visualizzazioni5 pagine

Query Biblioteca

query

Caricato da

alexbassotti
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 5

1) Mostrare il CAP ed il nome delle città (query di pura proiezione):

SELECT CAP, Nome


FROM Città;

2) Mostrare il nome degli autori il cui cognome è Alighieri


(query di selezione e proiezione):

SELECT Nome
FROM Autori
WHERE Cognome = "Alighieri";

3) Mostrare gli autori nati dopo il 1900:

SELECT *
FROM Autori
WHERE Data_Nascita >= #1/1/1900#;

4) Mostrare i titoli dei libri con un numero di pagine minore di 500:

SELECT Titolo
FROM Libri
WHERE Numero_Pagine < 500;

5) Mostrare il nome e cognome degli utenti che abitano in Via delle rose, 21:

SELECT Nome, Cognome


FROM Utenti
WHERE Indirizzo = "Via delle rose,21";

6) Mostrare i titoli dei libri di genere fantascienza o avventura


(query con operatore logico OR):

SELECT Titolo
FROM Libri
WHERE Genere = "Fantascienza" OR Genere = "Avventura";

7) Mostrare i titoli dei libri di genere avventura ed edizione Mondadori


(query con operatore logico AND):

SELECT Titolo
FROM Libri
WHERE Genere = "Avventura" AND Edizione = "Mondadori";

8) Mostrare i titoli dei libri di genere fantascienza ed edizione Mondadori, oppure


con numero
di pagine < 500:
(query con operatori logici AND e OR):

SELECT Titolo
FROM Libri
WHERE Genere = "Fantascienza" AND Edizione = "Mondadori" OR Numero_Pagine < 500;

9) Mostrare i titoli dei libri di genere avventura pubblicati tra il 01/01/1900 ed


il 01/01/1970:

SELECT Titolo
FROM Libri
WHERE Genere = "Avventura" AND Data_Pubblicazione >= #01/01/1900# AND
Data_Pubblicazione <= #01/01/1970#;

Oppure con l'operatore BETWEEN:

SELECT Titolo
FROM Libri
WHERE Genere = "Avventura" AND Data_Pubblicazione BETWEEN #01/01/1900# AND
#01/01/1970#;

10) Mostrare il nome ed il cognome degli utenti il cui cognome inizia con "Ro":
(query con operatore LIKE)

SELECT Nome, Cognome


FROM Utenti
WHERE Cognome LIKE "Ro*";

11) Mostrare tutte le città della provincia di Ancona o di Milano:

SELECT *
FROM Città
WHERE Provincia = "AN" OR Provincia = "MI";

Oppure con l'operatore IN:

SELECT *
FROM Città
WHERE Provincia IN ("AN", "MI");

12) Mostrare tutte le città che non sono in provincia di Ancona o di Milano:

SELECT *
FROM Città
WHERE NOT (Provincia = "AN" OR Provincia = "MI");

Oppure con l'operatore IN:

SELECT *
FROM Città
WHERE Provincia NOT IN ("AN", "MI");

13) Mostrare il nome, cognome e indirizzo degli utenti senza il numero di telefono:

SELECT Nome, Cognome, Indirizzo


FROM Utenti
WHERE Telefono IS NULL;

14) Mostrare il nome, cognome e indirizzo degli utenti con il numero di telefono:

SELECT Nome, Cognome, Indirizzo


FROM Utenti
WHERE Telefono IS NOT NULL;

15) Mostrare i titoli dei libri di genere avventura della Mondadori e che sono
collocati
in posizione che inizia con "P":

SELECT Titolo
FROM Libri
WHERE Genere = "Avventura" AND Edizione = "Mondadori" AND Collocazione LIKE "P*";

--------------------------------------------------------------------------------
Prodotto cartesiano e join:

16) Prodotto cartesiano: Città x Utenti

SELECT *
FROM Città, Utenti;

17) Mostrare il nome e cognome degli utenti di Roma (Join tra Città e Utenti):

SELECT Utenti.Nome, Cognome


FROM Città, Utenti
WHERE CAP = Cod_Città AND Città.Nome = "Roma";

18) Mostrare i titoli dei libri presi dal Sig. Ernesto Verdi:

SELECT Titolo
FROM Libri, Prestiti, Utenti
WHERE ID_Libro = Cod_Libro AND Cod_Utente = ID_Utente AND
Nome = "Ernesto" AND Cognome = "Verdi";

19) Mostrare tutti i libri scritti da Ernest Hemingway:

SELECT Libri.*
FROM Autori, Libri
WHERE ID_Autore = Cod_Autore AND Nome = "Ernest" AND Cognome = "Hemingway";

20) Mostrare il nome, cognome e indirizzo degli utenti di Milano che hanno preso
libri di
Torquato Tasso:

SELECT Utenti.Nome, Utenti.Cognome, Indirizzo


FROM Autori, Libri, Prestiti, Utenti, Città
WHERE ID_Autore = Cod_Autore AND ID_Libro = Cod_Libro AND Cod_Utente = ID_Utente
AND Cod_Città = CAP AND Autori.Nome ="Torquato" AND Autori.Cognome = "Tasso"
AND Città.Nome = "Milano";

21) Mostrare gli utenti di Bologna con il numero di telefono:

SELECT Utenti.*
FROM Utenti, Città
WHERE CAP = Cod_Città AND Telefono IS NOT NULL AND Città.Nome = "Bologna";

-----------------------------------------------------------------------------------
----
Funzioni di aggregazione: Count(), MIN(), MAX(), AVG(), SUM()
ed uso degli Alias

22) Contare il numero di Utenti, rinominando la colonna risultato con un opportuno


nome:

SELECT Count(*) AS [Numero degli utenti]


FROM Utenti;

23) Mostrare il massimo numero di pagine della tabella Libri:

SELECT MAX(Numero_Pagine)
FROM Libri;

24) Mostrare il minimo numero di pagine tra i libri di genere avventura o


fantascienza:

SELECT MIN(Numero_Pagine)
FROM Libri
WHERE Genere = "Avventura" OR Genere = "Fantascienza";

24_bis) Mostrare il minimo numero di pagine tra i libri di genere avventura o


fantascienza,
rinominando opportunamente l'intestazione del risultato:

SELECT MIN(Numero_Pagine) AS [Minimo numero di pagine tra avventura o fantascienza]


FROM Libri
WHERE Genere = "Avventura" OR Genere = "Fantascienza";

25) Contare gli utenti di Bologna, rinominando opportunamente l'intestazione del


risultato:

SELECT COUNT(*) AS [Numero degli utenti di Bologna]


FROM Città, Utenti
WHERE CAP = Cod_Città AND Città.Nome = "Bologna";

26) Query con ERRORE!!: Contare gli utenti di Bologna, rinominando opportunamente
l'intestazione del risultato, mostrare anche il nome degli utenti:

SELECT COUNT(*) AS [Numero degli utenti di Bologna], Utenti.Nome


FROM Città, Utenti
WHERE CAP = Cod_Città AND Città.Nome = "Bologna";

ERRORE: non si possono mettere nella target list funzioni di aggregazione con
singoli
campi di tabelle, a meno che tali campi non siano specificati in una clausola GROUP
BY.

27) Mostrare la media ed il massimo dei numeri di pagine dei libri di genere Poema:

SELECT AVG(Numero_Pagine), MAX(Numero_Pagine)


FROM Libri
WHERE Genere = "Poema";

Group By e Having:

28) Contare gli utenti per ogni città, mostrando il nome delle città e rinominando
opportunamente i nomi delle colonne risultato:

SELECT Count(*) AS [Numero utenti], Città.Nome AS [Città]


FROM Città, Utenti
WHERE CAP = Cod_Città
GROUP BY Città.Nome;

29) Contare gli utenti per ogni città, mostrando il nome delle città, e mostrando
solo i conteggi superiori o uguali a 2:

SELECT Count(*), Città.Nome


FROM Città, Utenti
WHERE CAP = Cod_Città
GROUP BY Città.Nome
HAVING Count(*) >= 2;

30) Mostrare la somma dei numeri di pagine scritte da ogni autore, rinominando la
somma e mostrando il nome e cognome degli autori:

SELECT Cognome, Nome, SUM(Numero_Pagine) AS [Numero di pagine scritte]


FROM Autori, Libri
WHERE ID_Autore = Cod_Autore
GROUP BY Cognome, Nome;

30_bis) Mostrare la somma dei numeri di pagine scritte da ogni autore, rinominando
la somma e mostrando il nome e cognome
degli autori e mostrando i risultati in ordine decrescente per somma:

SELECT Cognome, Nome, SUM(Numero_Pagine) AS [Numero di pagine scritte]


FROM Autori, Libri
WHERE ID_Autore = Cod_Autore
GROUP BY Cognome, Nome
ORDER BY SUM(Numero_Pagine) DESC;

30_ter) Mostrare la somma dei numeri di pagine scritte da ogni autore, rinominando
la somma e mostrando il nome e cognome
degli autori e mostrando i risultati in ordine alfabetico per cognome:

SELECT Cognome, Nome, SUM(Numero_Pagine) AS [Numero di pagine scritte]


FROM Autori, Libri
WHERE ID_Autore = Cod_Autore
GROUP BY Cognome, Nome
ORDER BY Cognome;

31) Mostrare il conteggio maggiore o uguale a 10 degli utenti per ogni città, che
abbiano preso libri di genere giallo. Occorre mostrare
anche il nome delle città ordinate alfabeticamente:

SELECT Count(*), Città.Nome


FROM Città, Utenti, Prestiti, Libri
WHERE CAP = Cod_Città AND ID_Utente = Cod_Utente AND Cod_Libro = ID_Libro AND
Genere = "Giallo"
GROUP BY Città.Nome
HAVING Count(*) >= 10
ORDER BY Città.Nome;

Potrebbero piacerti anche