[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
È possibile trasformare l'interrogazione di una o più relazioni in una vista, che in pratica diventa una relazione virtuale.
Con l'ausilio di un programma per la scrittura e modifica di file di testo puro, si crei il file prova-vista-listino.sql
, contenente il testo seguente, sostituendo le metavariabili con informazioni appropriate e rispettando la punteggiatura:
|
In questo modo, si crea la vista Listino, composta dagli attributi Codice, Articolo e EUR, utilizzando, rispettivamente, gli attributi Articolo, Descrizione e Listino dalla relazione Articoli.
Si controlli di avere scritto il file prova-vista-listino.sql
in modo corretto, rispettando anche la punteggiatura; si controlli di avere salvato il file con il nome previsto, quindi si proceda con il comando seguente:
$
sqlite3 mag.db < prova-vista-listino.sql
[Invio]
Se non si ottiene alcun messaggio da parte del programma, la creazione della vista Listino ha avuto successo, altrimenti, è stato commesso un errore. Per rimediare all'errore, si deve prima cancellare la vista, quindi si può ritentare l'inserimento del comando (ammesso che il file prova-vista-listino.sql
sia stato corretto di conseguenza). I passaggi per eliminare la vista, in modo interattivo, sono quelli seguenti:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
DROP VIEW Listino;
[Invio]
sqlite>
.quit
[Invio]
Quando si è consapevoli di avere creato correttamente la vista Listino, la si può interrogare come se fosse una relazione normale. Si esegua il procedimento seguente, in modo interattivo:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
.headers on
[Invio]
sqlite>
.mode column
[Invio]
sqlite>
SELECT * FROM Listino;
[Invio]
Si dovrebbe ottenere il listato seguente:
Codice Articolo EUR ---------- ----------------------------- ---------- 1 Dischetti da 9 cm 1440 Kibyte 0.2 2 Dischetti da 9 cm 1440 Kibyte 0.25 101 CD-R 16x 0.5 102 CD-R 52x 1 201 CD-RW 4x 1 202 CD-RW 8x 1.5 301 DVD-R 8x 1 302 DVD-R 16x 2 401 DVD+R 8x 1 402 DVD+R 16x 2 501 DVD-RW 8x 2 601 DVD+RW 8x 2 |
Come sempre, si conclude il funzionamento interattivo di sqlite3 con il comando .quit:
sqlite>
.quit
[Invio]
Con l'ausilio di un programma per la scrittura e modifica di file di testo puro, si crei il file prova-vista-resi.sql
, contenente il testo seguente, sostituendo le metavariabili con informazioni appropriate e rispettando la punteggiatura:
|
In questo modo, si crea la vista Resi, utilizzando le relazioni Articoli, Movimenti e Fornitori, limitando la selezione delle tuple della relazione Movimenti a quelle che riguardano un reso a fornitore, in quanto la causale corrisponde al numero quattro.
Si controlli di avere scritto il file prova-vista-resi.sql
in modo corretto, rispettando anche la punteggiatura; si controlli di avere salvato il file con il nome previsto, quindi si proceda con il comando seguente:
$
sqlite3 mag.db < prova-vista-resi.sql
[Invio]
Se non si ottiene alcun messaggio da parte del programma, la creazione della vista Resi ha avuto successo, altrimenti, è stato commesso un errore. Per rimediare all'errore, si deve prima cancellare la vista, quindi si può ritentare l'inserimento del comando (ammesso che il file prova-vista-resi.sql
sia stato corretto di conseguenza). I passaggi per eliminare la vista, in modo interattivo, sono quelli seguenti:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
DROP VIEW Resi;
[Invio]
sqlite>
.quit
[Invio]
Quando si è consapevoli di avere creato correttamente la vista Resi, la si può interrogare come se fosse una relazione normale. Si esegua il procedimento seguente, in modo interattivo:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
.headers on
[Invio]
sqlite>
.mode column
[Invio]
sqlite>
SELECT * FROM Resi;
[Invio]
Si dovrebbe ottenere il listato seguente:
Articolo Data Fornitore Reso Valore ---------- ---------- ---------- ---------- ---------- CD-R 52x 2006-01-20 Caio Cai 100 20 DVD+R 8x 2006-01-20 Tizio Tizi 100 20 |
Come sempre, si conclude il funzionamento interattivo di sqlite3 con il comando .quit:
sqlite>
.quit
[Invio]
Si prepari il file vista-acquisti.sql
, seguendo lo scheletro seguente, tenendo conto che si vuole ottenere un elenco dei movimenti di magazzino che riguardano i carichi per acquisto (causale uno). La vista deve essere composta dagli attributi seguenti:
Articolo, corrispondente alla descrizione dell'articolo acquistato;
Data, corrispondente alla data di acquisto;
Fornitore, corrispondente alla ragione sociale del fornitore dal quale l'articolo è stato acquistato;
Acquistato, corrispondente alla quantità acquistata;
Valore, corrispondente al valore complessivo caricato (pari all'attributo con lo stesso nome della relazione Movimenti).
|
Una volta completato e salvato il file vista-acquisti.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < vista-acquisti.sql
[Invio]
Se non si ottiene alcun messaggio da parte del programma, la creazione della vista Acquisti ha avuto successo, altrimenti, è stato commesso un errore. Per rimediare all'errore, si deve prima cancellare la vista, quindi si può ritentare l'inserimento del comando (ammesso che il file vista-acquisti.sql
sia stato corretto di conseguenza).
Quando si è consapevoli di avere creato correttamente la vista Acquisti, la si può interrogare come se fosse una relazione normale. Si esegua il procedimento seguente, in modo interattivo:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
.headers on
[Invio]
sqlite>
.mode column
[Invio]
sqlite>
SELECT * FROM Acquisti;
[Invio]
Si dovrebbe ottenere il listato seguente:
Articolo Data Fornitore Acquistato Valore -------------------------------------- ---------- ------------------ ---------- ---------- Dischetti da 9 cm 1440 Kibyte colorati 2006-01-15 Sempronio Semproni 10000 100 CD-R 52x 2006-01-17 Caio Cai 1000 200 DVD+R 8x 2006-01-19 Tizio Tizi 1000 200 DVD+RW 8x 2006-01-21 Sempronio Semproni 2000 1000 |
Se tutto funziona regolarmente, si consegni per la valutazione la stampa del file vista-acquisti.sql
.
Si prepari il file vista-vendite.sql
, seguendo lo scheletro seguente, tenendo conto che si vuole ottenere un elenco dei movimenti di magazzino che riguardano gli scarichi per vendita (causale due). La vista deve essere composta dagli attributi seguenti:
Articolo, corrispondente alla descrizione dell'articolo venduto;
Data, corrispondente alla data di vendita;
Cliente, corrispondente alla ragione sociale del cliente al quale l'articolo è stato venduto;
Venduto, corrispondente alla quantità venduta;
Valore, corrispondente al valore complessivo scaricato (pari all'attributo con lo stesso nome della relazione Movimenti).
|
Una volta completato e salvato il file vista-vendite.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < vista-vendite.sql
[Invio]
Se non si ottiene alcun messaggio da parte del programma, la creazione della vista Vendite ha avuto successo, altrimenti, è stato commesso un errore. Per rimediare all'errore, si deve prima cancellare la vista, quindi si può ritentare l'inserimento del comando (ammesso che il file vista-vendite.sql
sia stato corretto di conseguenza).
Quando si è consapevoli di avere creato correttamente la vista Vendite, la si può interrogare come se fosse una relazione normale. Si esegua il procedimento seguente, in modo interattivo:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
.headers on
[Invio]
sqlite>
.mode column
[Invio]
sqlite>
SELECT * FROM Vendite;
[Invio]
Si dovrebbe ottenere il listato seguente:
Articolo Data Cliente Venduto Valore -------------------------------------- ---------- ------------- ---------- ---------- Dischetti da 9 cm 1440 Kibyte colorati 2006-01-16 Filano Filani 1000 10 CD-R 52x 2006-01-18 Mevio Mevi 100 20 DVD+R 8x 2006-01-20 Martino Marti 200 20 DVD+RW 8x 2006-01-25 Mevio Mevi 1000 500 |
Se tutto funziona regolarmente, si consegni per la valutazione la stampa del file vista-vendite.sql
.
Prima di passare al capitolo successivo, si deve riprendere il file magazzino.sql
e vi si devono aggiungere le istruzioni per la creazione delle viste Acquisti e Vendite, come contenuto nei file vista-acquisti.sql
e vista-vendite.sql
.
Una volta aggiornato il file magazzino.sql
come descritto, si deve cancellare il file mag.db
e ricreare a partire dalle istruzioni contenute nel file magazzino.sql
:
$
sqlite3 mag.db < magazzino.sql
[Invio]
Se vengono segnalati degli errori, occorre correggere il file magazzino.sql
, cancellare nuovamente il file mag.db
, quindi si deve ripetere l'operazione. La base di dati contenuta nel file mag.db
, viene usata nel capitolo successivo e non si può proseguire se non si riesce a ricrearla correttamente.
All'inizio del capitolo sono stati creati i file prova-vista-listino.sql
e prova-vista-resi.sql
, che a questo punto non servono più e vanno cancellati.
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome viste.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]