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:

  1. SELECT: Selezioniamo le colonne id_libro, titolo, autore e anno_pubblicazione per visualizzare i dati sui libri.

  2. FROM: La tabella da cui estrarre i dati è Libri.

  3. 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:

  1. INSERT INTO: Specifica la tabella in cui inserire i dati ( Libri ).

  2. (titolo, autore, anno_pubblicazione, disponibile): Indica le colonne in cui inserire i dati.

  3. 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:

  1. UPDATE: Specifica la tabella che desideri aggiornare ( Libri ).

  2. SET: Imposta il valore della colonna disponibile su 0 per il libro specificato.

  3. 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:

  1. SELECT: Seleziona le colonne che desideri visualizzare ( nome , cognome , email dell'utente, e il titolo del libro).

  2. FROM: La tabella principale è Prestiti , che memorizza i dettagli del prestito.

  3. JOIN: Unisci la tabella Prestiti con Utenti (per ottenere i dettagli dell'utente) e con Libri (per ottenere i dettagli del libro).

  4. 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:

  1. SELECT: Seleziona il nome e il cognome dell'utente e il conteggio dei prestiti ( COUNT(P.id_prestito) ).

  2. FROM: La tabella principale è Utenti , perché vogliamo sapere quanti libri ha ogni utente.

  3. LEFT JOIN: Esegui una join tra Utenti e Prestiti . Usiamo LEFT JOIN per includere anche gli utenti che non hanno libri in prestito.

  4. WHERE: Filtra i prestiti non restituiti ( data_restituzione IS NULL ).

  5. 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:

  1. SELECT: Seleziona il titolo del libro e il conteggio dei prestiti ( COUNT(P.id_prestito) ).

  2. FROM: La tabella principale è Libri .

  3. JOIN: Esegui una join tra Libri e Prestiti per ottenere i prestiti relativi ai libri.

  4. GROUP BY: Raggruppa i risultati per id_libro per calcolare il numero di prestiti per ogni libro.

  5. 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!


Back to top