See also ebooksgratis.com: no banners, no cookies, totally FREE.

Web Analytics Made Easy - Statcounter


https://www.amazon.it/dp/B0CT9YL557

We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
a2 --- Interrogazione selettiva di una relazione

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 462.   Interrogazione selettiva di una relazione

Attraverso l'istruzione SELECT, aggiungendo l'opzione WHERE, è possibile specificare una condizione per la selezione delle tuple desiderate. In mancanza dell'indicazione di questa opzione, l'elenco delle tuple è sempre completo. La parola chiave WHERE precede un'espressione logica, che viene valutata per ogni tupla: se l'espressione risulta valida (Vero), allora la tupla viene presa in considerazione.

In queste lezioni non viene descritto in modo dettagliato come realizzare delle espressioni logiche; tuttavia, vengono raccolte qui delle tabelle riassuntive per la loro realizzazione. Gli studenti possono usarle in modo intuitivo, ma nelle verifiche non si richiede altro che utilizzare o modificare leggermente degli esempi già mostrati.

Tabella 462.1. Operatori di confronto.

Operatore e
operandi
Descrizione
op1 = op2

Vero se gli operandi si equivalgono.
op1 <> op2

Vero se gli operandi sono differenti.
op1 < op2

Vero se il primo operando è minore del secondo.
op1 > op2

Vero se il primo operando è maggiore del secondo.
op1 <= op2

Vero se il primo operando è minore o uguale al secondo.
op1 >= op2

Vero se il primo operando è maggiore o uguale al secondo.

Tabella 462.2. Operatori logici.

Operatore e
operandi
Descrizione
NOT op

Inverte il risultato logico dell'operando.
op1 AND op2

Vero se entrambi gli operandi restituiscono il valore Vero.
op1 OR op2

Vero se almeno uno degli operandi restituisce il valore Vero.

Tabella 462.3. Espressioni sulle stringhe di caratteri.

Espressioni e modelli Descrizione
stringa LIKE modello

Restituisce Vero se il modello corrisponde alla stringa.
stringa NOT LIKE modello

Restituisce Vero se il modello non corrisponde alla stringa.
_

Rappresenta un carattere qualsiasi.
%

Rappresenta una sequenza indeterminata di caratteri.

Tabella 462.4. Espressioni di verifica dei valori indeterminati.

Operatori Descrizione
espressione IS NULL

Restituisce Vero se l'espressione genera un risultato indeterminato.
espressione IS NOT NULL

Restituisce Vero se l'espressione non genera un risultato indeterminato.

Tabella 462.5. Espressioni per la verifica dell'appartenenza di un valore a un intervallo o a un elenco.

Operatori e operandi Descrizione
op1 IN (elenco)

Vero se il primo operando è contenuto nell'elenco.
op1 NOT IN (elenco)

Vero se il primo operando non è contenuto nell'elenco.
op1 BETWEEN op2 AND op3

Vero se il primo operando è compreso tra il secondo e il terzo.
op1 NOT BETWEEN op2 AND op3

Vero se il primo operando non è compreso nell'intervallo.

462.1   Interrogazione selettiva

A titolo di esempio, si vuole ottenere l'elenco delle tuple della relazione Articoli, selezionando solo quelle che riportano un prezzo di listino maggiore o uguale a 1,00 €. Si può utilizzare il programma sqlite3 in modo interattivo:

sqlite3 mag.db[Invio]

SQLite version ...

Enter ".help" for instructions

sqlite> .headers on[Invio]

sqlite> .mode column[Invio]

sqlite> SELECT * FROM Articoli WHERE Listino >= 1;[Invio]

Articolo    Descrizione  UM          Listino     ScortaMin 

----------  -----------  ----------  ----------  ----------

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       

La condizione di selezione potrebbe essere più articolata; per esempio si potrebbe decidere di selezionare gli articoli che hanno un prezzo di listino maggiore o uguale a 1,00 € e che hanno una descrizione che inizia con «DVD»:

sqlite> SELECT * FROM Articoli[Invio]

   ...>          WHERE Listino >= 1 AND Descrizione LIKE 'DVD%';[Invio]

Articolo    Descrizione  UM          Listino     ScortaMin 

----------  -----------  ----------  ----------  ----------

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       

Come sempre, si conclude il funzionamento interattivo di sqlite3 con il comando .quit:

sqlite> .quit[Invio]

462.2   Verifica sull'interrogazione selettiva della relazione «Articoli»

Si prepari il file interrogazione-articoli-03.sql, seguendo lo scheletro seguente, tenendo conto che si vuole ottenere l'elenco delle tuple della relazione Articoli, corrispondenti a dei «DVD», che abbiano un prezzo minore o uguale a 1,00 € (l'operatore da usare per rappresentare il confronto «minore o uguale» è <=).

Figura 462.9. Scheletro del file interrogazione-articoli-03.sql, da completare.

-- Interrogazione della relazione "Articoli"

-- Esercizio di: cognome nome classe

-- Data: data

-- File: interrogazione-articoli-03.sql



.headers on

.mode column



SELECT ...

       FROM ...

       WHERE ...

Una volta completato e salvato il file interrogazione-articoli-03.sql, se ne controlli il funzionamento con la base di dati:

sqlite3 mag.db < interrogazione-articoli-03.sql[Invio]

Si dovrebbe ottenere il risultato seguente:

Articolo    Descrizione  UM          Listino     ScortaMin 

----------  -----------  ----------  ----------  ----------

301         DVD-R 8x     pz          1           200       

401         DVD+R 8x     pz          1           200       

Se il risultato è corretto, si proceda con la stampa:

sqlite3 mag.db < interrogazione-articoli-03.sql | lpr[Invio]

Si consegni per la valutazione, la stampa ottenuta in questo modo, assieme alla stampa del file interrogazione-articoli-03.sql.

462.3   Verifica sull'interrogazione selettiva e ordinata della relazione «Articoli»

Si prepari il file interrogazione-articoli-04.sql, seguendo lo scheletro seguente, tenendo conto che si vuole ottenere l'elenco ordinato per livello di scorta minima delle tuple della relazione Articoli, che corrispondono a dei «CD».

Figura 462.11. Scheletro del file interrogazione-articoli-04.sql, da completare.

-- Interrogazione della relazione "Articoli"

-- Esercizio di: cognome nome classe

-- Data: data

-- File: interrogazione-articoli-04.sql



.headers on

.mode column



SELECT ...

       FROM ...

       WHERE ...

       ORDER BY ...

Una volta completato e salvato il file interrogazione-articoli-04.sql, se ne controlli il funzionamento con la base di dati:

sqlite3 mag.db < interrogazione-articoli-04.sql[Invio]

Si dovrebbe ottenere il risultato seguente:

Articolo    Descrizione  UM          Listino     ScortaMin 

----------  -----------  ----------  ----------  ----------

202         CD-RW 8x     pz          1.5         200       

201         CD-RW 4x     pz          1           200       

102         CD-R 52x     pz          1           500       

101         CD-R 16x     pz          0.5         500       

Se il risultato è corretto, si proceda con la stampa:

sqlite3 mag.db < interrogazione-articoli-04.sql | lpr[Invio]

Si consegni per la valutazione, la stampa ottenuta in questo modo, assieme alla stampa del file interrogazione-articoli-04.sql.

462.4   Verifica sull'interrogazione selettiva della relazione «Causali»

Si prepari il file interrogazione-causali-02.sql, seguendo lo scheletro seguente, tenendo conto che si vuole ottenere l'elenco delle tuple della relazione Causali che comportano un aumento (contabile) della quantità di un articolo in magazzino. Le causali che rappresentano un aumento della quantità sono quelle che, nell'attributo Variazione hanno il valore 1 (ovvero +1); pertanto, per selezionare le tuple in questione, è sufficiente verificare che questo valore sia esattamente pari a uno (utilizzando l'operatore =).

Figura 462.13. Scheletro del file interrogazione-causali-02.sql, da completare.

-- Interrogazione della relazione "Causali"

-- Esercizio di: cognome nome classe

-- Data: data

-- File: interrogazione-causali-02.sql



.headers on

.mode column



SELECT ...

       FROM ...

       WHERE ...

Una volta completato e salvato il file interrogazione-causali-02.sql, se ne controlli il funzionamento con la base di dati:

sqlite3 mag.db < interrogazione-causali-02.sql[Invio]

Si dovrebbe ottenere il risultato seguente:

Causale     Descrizione          Variazione

----------  -------------------  ----------

1           Carico per acquisto  1         

3           Reso da cliente      1         

5           Rettifica aumento a  1         

7           Rettifica diminuzio  1         

9           Carico da produzion  1         

11          Carico da altro mag  1         

13          Saldo iniziale       1         

Se il risultato è corretto, si proceda con la stampa:

sqlite3 mag.db < interrogazione-causali-02.sql | lpr[Invio]

Si consegni per la valutazione, la stampa ottenuta in questo modo, assieme alla stampa del file interrogazione-causali-02.sql.

Appunti di informatica libera 2006.01.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome interrogazione_selettiva_di_una_relazione.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!

CSS validator!

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com

<