[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Attraverso l'istruzione SELECT è possibile estrarre il contenuto di una o più relazioni simultaneamente. In questo capitolo si mostrano alcune situazioni riferite a una sola relazione.
Si ottiene l'elenco completo di una relazione utilizzando l'istruzione seguente:
SELECT * FROM nome_relazione |
Si eseguano i passaggi seguenti, per ottenere la visualizzazione del contenuto complessivo della relazione Articoli e della relazione Causali, così come dovrebbero essere contenute nella base di dati del file mag.db:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
.headers on
[Invio]
sqlite>
.mode column
[Invio]
sqlite>
SELECT * FROM Articoli;
[Invio]
Articolo Descrizione UM Listino ScortaMin ---------- ----------------------------- ---------- ---------- ---------- 1 Dischetti da 9 cm 1440 Kibyte pz 0.2 500 2 Dischetti da 9 cm 1440 Kibyte pz 0.25 500 101 CD-R 16x pz 0.5 500 102 CD-R 52x pz 1 500 201 CD-RW 4x pz 1 200 202 CD-RW 8x pz 1.5 200 301 DVD-R 8x pz 1 200 302 DVD-R 16x pz 2 200 401 DVD+R 8x pz 1 200 402 DVD+R 16x pz 2 200 501 DVD-RW 8x pz 2 200 601 DVD+RW 8x pz 2 200 |
sqlite>
SELECT * FROM Causali;
[Invio]
Causale Descrizione Variazione ---------- ------------------- ---------- 1 Carico per acquisto 1 2 Scarico per vendita -1 3 Reso da cliente 1 4 Reso a fornitore -1 5 Rettifica aumento a 1 6 Rettifica aumento v -1 7 Rettifica diminuzio 1 8 Rettifica diminuzio -1 9 Carico da produzion 1 10 Scarico a produzion -1 11 Carico da altro mag 1 12 Scarico ad altro ma -1 13 Saldo iniziale 1 |
sqlite>
.quit
[Invio]
Si osservi che i comandi .headers on e .mode column servono a ottenere un elenco incolonnato con le intestazioni, altrimenti, il risultato sarebbe poco gradevole esteticamente.
Si ottiene l'elenco di tutte le tuple di una relazione, limitatamente a un certo gruppo di attributi, mettendo, al posto dell'asterisco, i nomi degli attributi desiderati:
SELECT attributo[, attributo]... FROM nome_relazione |
Si eseguano i passaggi seguenti, per ottenere la visualizzazione del contenuto di tutte le tuple della relazione Articoli, limitatamente agli attributi Articolo, Descrizione e Listino, così come dovrebbero essere contenute nella base di dati del file mag.db:
$
sqlite3 mag.db
[Invio]
SQLite version ... Enter ".help" for instructions |
sqlite>
.headers on
[Invio]
sqlite>
.mode column
[Invio]
sqlite>
SELECT Articolo, Descrizione, Listino FROM Articoli;
[Invio]
Articolo Descrizione Listino ---------- ----------------------------- ---------- 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 |
Intuitivamente, si comprende che si può anche cambiare l'ordine di visualizzazione degli attributi:
sqlite>
SELECT Descrizione, Articolo, Listino FROM Articoli;
[Invio]
Descrizione Articolo Listino ----------------------------- ---------- ---------- Dischetti da 9 cm 1440 Kibyte 1 0.2 Dischetti da 9 cm 1440 Kibyte 2 0.25 CD-R 16x 101 0.5 CD-R 52x 102 1 CD-RW 4x 201 1 CD-RW 8x 202 1.5 DVD-R 8x 301 1 DVD-R 16x 302 2 DVD+R 8x 401 1 DVD+R 16x 402 2 DVD-RW 8x 501 2 DVD+RW 8x 601 2 |
Si conclude il funzionamento interattivo di sqlite3 con il comando .quit:
sqlite>
.quit
[Invio]
Per ottenere la stampa del contenuto di una o di più relazioni, conviene scrivere le istruzioni necessarie in un file di testo, come già fatto nel capitolo precedente. Si proceda con la creazione del file prova-stampa-articoli-e-causali.sql
, con il contenuto seguente, che ricalca quanto già mostrato nelle sezioni precedenti:
|
Per verificare il funzionamento delle istruzioni contenute nel file stampa-articoli-e-causali.sql
, si può utilizzare il comando seguente, che interviene nella base di dati contenuta nel file mag.db
, limitandosi a visualizzare il risultato:
$
sqlite3 mag.db < prova-stampa-articoli-e-causali.sql
[Invio]
Si dovrebbe ottenere il listato seguente:
Articolo Descrizione UM Listino ScortaMin ---------- ----------------------------- ---------- ---------- ---------- 1 Dischetti da 9 cm 1440 Kibyte pz 0.2 500 2 Dischetti da 9 cm 1440 Kibyte pz 0.25 500 101 CD-R 16x pz 0.5 500 102 CD-R 52x pz 1 500 201 CD-RW 4x pz 1 200 202 CD-RW 8x pz 1.5 200 301 DVD-R 8x pz 1 200 302 DVD-R 16x pz 2 200 401 DVD+R 8x pz 1 200 402 DVD+R 16x pz 2 200 501 DVD-RW 8x pz 2 200 601 DVD+RW 8x pz 2 200 Causale Descrizione Variazione ---------- ------------------- ---------- 1 Carico per acquisto 1 2 Scarico per vendita -1 3 Reso da cliente 1 4 Reso a fornitore -1 5 Rettifica aumento a 1 6 Rettifica aumento v -1 7 Rettifica diminuzio 1 8 Rettifica diminuzio -1 9 Carico da produzion 1 10 Scarico a produzion -1 11 Carico da altro mag 1 12 Scarico ad altro ma -1 13 Saldo iniziale 1 |
Per ottenere il risultato stampato su carta, basta modificare leggermente il comando:
$
sqlite3 mag.db < prova-stampa-articoli-e-causali.sql | lpr
[Invio]
Si prepari il file interrogazione-articoli-01.sql
, seguendo lo scheletro seguente, tenendo conto che si vuole ottenere l'elenco di tutte le tuple della relazione Articoli, ordinando gli attributi in questo modo: Descrizione, Articolo, UM, ScortaMin e Listino.
Figura 506.9. Scheletro del file
|
Una volta completato e salvato il file interrogazione-articoli-01.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < interrogazione-articoli-01.sql
[Invio]
Si dovrebbe ottenere il risultato seguente:
Descrizione Articolo UM ScortaMin Listino ----------------------------- ---------- ---------- ---------- ---------- Dischetti da 9 cm 1440 Kibyte 1 pz 500 0.2 Dischetti da 9 cm 1440 Kibyte 2 pz 500 0.25 CD-R 16x 101 pz 500 0.5 CD-R 52x 102 pz 500 1 CD-RW 4x 201 pz 200 1 CD-RW 8x 202 pz 200 1.5 DVD-R 8x 301 pz 200 1 DVD-R 16x 302 pz 200 2 DVD+R 8x 401 pz 200 1 DVD+R 16x 402 pz 200 2 DVD-RW 8x 501 pz 200 2 DVD+RW 8x 601 pz 200 2 |
Se il risultato è corretto, si proceda con la stampa:
$
sqlite3 mag.db < interrogazione-articoli-01.sql | lpr
[Invio]
Si consegni per la valutazione, la stampa ottenuta in questo modo, assieme alla stampa del file interrogazione-articoli-01.sql
.
Si prepari il file interrogazione-fornitori-clienti-01.sql
, seguendo lo scheletro seguente, tenendo conto che si vuole ottenere l'elenco di tutte le tuple delle relazioni Fornitori e Clienti, limitatamente agli attributi: Fornitore (nel caso della relazione Fornitori) o Cliente (nel caso della relazione Clienti), RagioneSociale, Telefono e Fax.
Figura 506.11. Scheletro del file
|
Una volta completato e salvato il file interrogazione-fornitori-clienti-01.sql
, se ne controlli il funzionamento con la base di dati:
$
sqlite3 mag.db < interrogazione-fornitori-clienti-01.sql
[Invio]
Si dovrebbe ottenere il risultato seguente:
Fornitore RagioneSociale Telefono Fax ---------- -------------- ----------- ----------- 1 Tizio Tizi 0422,111111 0422,222222 2 Caio Cai 0423,222222 0423,333333 3 Sempronio Semp 0422,333333 0422,444444 Cliente RagioneSociale Telefono Fax ---------- -------------- ----------- ----------- 1 Mevio Mevi 0422,444444 0422,555555 2 Filano Filani 0439,555555 0439,666666 3 Martino Martin 0438,666666 0438,777777 |
Se il risultato è corretto, si proceda con la stampa:
$
sqlite3 mag.db < interrogazione-fornitori-clienti-01.sql
\
\| lpr
[Invio]
Si consegni per la valutazione, la stampa ottenuta in questo modo, assieme alla stampa del file interrogazione-fornitori-clienti.sql
.
Il file prova-stampa-articoli-e-causali.sql
, non serve più nei capitoli successivi, pertanto va eliminato.
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 interrogazione_semplice_di_una_relazione.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]