Esempi pratici di query SQL per la gestione di una biblioteca all'interno di un sistema informativo aziendale. Ogni esempio include una descrizione passo dopo passo per aiutarti a comprendere come costruire ciascuna query.
1. Recuperare tutti i libri disponibili in biblioteca
Immagina di avere le seguenti tabelle:
-
Libri: contiene i dettagli dei libri disponibili nella biblioteca.
-
id_libro
-
titolo
-
autore
-
anno_pubblicazione
-
disponibile (BOOLEAN: 1 se il libro è disponibile, 0 se non lo è)
-
Obiettivo: Recuperare i dettagli di tutti i libri disponibili nella biblioteca.
SELECT id_libro, titolo, autore, anno_pubblicazione FROM Libri WHERE disponibile = 1;
Passo dopo passo:
-
SELECT: Selezioniamo le colonne id_libro, titolo, autore e anno_pubblicazione per visualizzare i dati sui libri.
-
FROM: La tabella da cui estrarre i dati è Libri.
-
WHERE: Filtra solo i libri con disponibile = 1, ossia quelli che sono attualmente disponibili.
2. Aggiungere un nuovo libro alla biblioteca
Immagina di voler aggiungere un nuovo libro nella tabella Libri.
Obiettivo: Inserire un libro con il titolo "Il codice della mente" di autore "Giovanni Rossi", pubblicato nel 2023, disponibile per il prestito.
INSERT INTO Libri (titolo, autore, anno_pubblicazione, disponibile)
VALUES ('Il codice della mente', 'Giovanni Rossi', 2023, 1);
Passo dopo passo:
-
INSERT INTO: Specifica la tabella in cui inserire i dati ( Libri ).
-
(titolo, autore, anno_pubblicazione, disponibile): Indica le colonne in cui inserire i dati.
-
VALUES: Fornisce i valori da inserire per ogni colonna: il titolo, l'autore, l'anno di pubblicazione e lo stato di disponibilità del libro.
3. Aggiornare la disponibilità di un libro
Immagina di voler aggiornare la disponibilità di un libro, ad esempio, segnando come non disponibile un libro prestato.
Obiettivo: Aggiornare la disponibilità del libro con id_libro = 5 e impostarla su 0 (non disponibile).
UPDATE Libri SET disponibile = 0 WHERE id_libro = 5;
Passo dopo passo:
-
UPDATE: Specifica la tabella che desideri aggiornare ( Libri ).
-
SET: Imposta il valore della colonna disponibile su 0 per il libro specificato.
-
WHERE: Filtra il libro da aggiornare utilizzando la condizione id_libro = 5.
4. Recuperare gli utenti che hanno in prestito un libro
Immagina di avere una tabella Prestiti che memorizza i prestiti dei libri agli utenti, con le seguenti colonne:
-
id_prestito
-
id_libro
-
id_utente
-
data_prestito
-
data_restituzione
E una tabella Utenti con le seguenti colonne:
-
id_utente
-
nome
-
cognome
-
email
Obiettivo: Recuperare i dettagli di tutti gli utenti che hanno un libro in prestito.
SELECT U.nome, U.cognome, U.email, L.titolo FROM Prestiti P JOIN Utenti U ON P.id_utente = U.id_utente JOIN Libri L ON P.id_libro = L.id_libro WHERE P.data_restituzione IS NULL;
Passo dopo passo:
-
SELECT: Seleziona le colonne che desideri visualizzare ( nome , cognome , email dell'utente, e il titolo del libro).
-
FROM: La tabella principale è Prestiti , che memorizza i dettagli del prestito.
-
JOIN: Unisci la tabella Prestiti con Utenti (per ottenere i dettagli dell'utente) e con Libri (per ottenere i dettagli del libro).
-
WHERE: Filtra i prestiti per quelli che non sono stati restituiti, cioè quelli con data_restituzione IS NULL .
5. Contare il numero di libri in prestito per ogni utente
Immagina di voler sapere quanti libri ha in prestito ogni utente.
Obiettivo: Contare il numero di libri in prestito per ciascun utente.
SELECT U.nome, U.cognome, COUNT(P.id_prestito) AS numero_libri_in_prestito FROM Utenti U LEFT JOIN Prestiti P ON U.id_utente = P.id_utente WHERE P.data_restituzione IS NULL GROUP BY U.id_utente;
Passo dopo passo:
-
SELECT: Seleziona il nome e il cognome dell'utente e il conteggio dei prestiti ( COUNT(P.id_prestito) ).
-
FROM: La tabella principale è Utenti , perché vogliamo sapere quanti libri ha ogni utente.
-
LEFT JOIN: Esegui una join tra Utenti e Prestiti . Usiamo LEFT JOIN per includere anche gli utenti che non hanno libri in prestito.
-
WHERE: Filtra i prestiti non restituiti ( data_restituzione IS NULL ).
-
GROUP BY: Raggruppa i risultati per id_utente per ottenere il conteggio per ciascun utente.
6. Visualizzare i libri prestati più frequentemente
Immagina che tu voglia sapere quali libri sono stati prestati più frequentemente.
Obiettivo: Recuperare i libri più prestati (ordinati per numero di prestiti).
SELECT L.titolo, COUNT(P.id_prestito) AS numero_prestiti FROM Libri L JOIN Prestiti P ON L.id_libro = P.id_libro GROUP BY L.id_libro ORDER BY numero_prestiti DESC;
Passo dopo passo:
-
SELECT: Seleziona il titolo del libro e il conteggio dei prestiti ( COUNT(P.id_prestito) ).
-
FROM: La tabella principale è Libri .
-
JOIN: Esegui una join tra Libri e Prestiti per ottenere i prestiti relativi ai libri.
-
GROUP BY: Raggruppa i risultati per id_libro per calcolare il numero di prestiti per ogni libro.
-
ORDER BY: Ordina i risultati in ordine decrescente in base al numero di prestiti ( numero_prestiti DESC ).
Questi esempi di query SQL possono essere utilizzati per gestire le operazioni quotidiane di una biblioteca, come la gestione dei libri, dei prestiti, degli utenti e delle statistiche sui prestiti. Se hai domande o necessiti di ulteriori dettagli, fammi sapere!