venerdì 15 maggio 2009

Query SQL

  1. Ricerca per Reparto: scelto un Reparto, il numero di libri “Da non perdere” ed il numero di libri “I più venduti” con i relativi dettagli


Ipotizziamo che la scelta del reparto avvenga tramite il nome (R_nome). Sono necessarie 4 tabelle: LIBRO, REPARTO, CATEGORIA, APPARTIENE

Con questa prima interrogazione otteniamo il numero di libri “Da non perdere” di un determinato reparto:


SELECT count(*) AS [Numero_Libri]

FROM Libro, Reparto, Categoria, Appartiene

WHERE (

L_Reparto=R_codice

AND

C_codice=A_Categoria

AND

A_Libro=L_codice

AND

R_nome=[Nome del reparto]

AND

C_descrizione="Da non perdere"

);

(analogo discorso per i libri “I più venduti”)


Per ottenere il dettaglio dei libri (in questo caso presentiamo solo autore e titolo:

SELECT L_autore, L_titolo

FROM Libro, Reparto, Categoria, Appartiene

WHERE (

L_Reparto=R_codice

AND

C_codice=A_Categoria

AND

A_Libro=L_codice

AND

R_nome=[Nome del reparto]

AND

C_descrizione="Da non perdere"

);

(analogo discorso per i libri “I più venduti”)


  1. Ordini: gli ordini in corso, con dettagli, di un dato utente,
  • con accesso riservato agli utenti registrati, la composizione degli ordini in corso.

L’accesso è riservato agli utenti registrati che quindi possono consultare solo i propri ordini, ipotizziamo quindi che durante la fase di login venga memorizzato il codice utente (COD_UTENTE), l’attributo O_stato della tabella Ordini è utilizzato per individuare gli ordini in corso.


SELECT O_numero AS [N. Odine], L_autore AS [Autore], L_titolo AS [Titolo], I_numero_copie AS [copie]

FROM Ordine, Incluso, Libro

WHERE (

I_Ordine=O_numero

AND

I_Libro=L_codice

AND

O_Utente=COD_UTENTE

AND

O_stato="in corso"

);



Nessun commento:

Posta un commento