Descrizione
Esercizi SQL
Obiettivi della lezione
Esercitazioni sul linguaggio SQL
Indice lezione
Lezione 20 - Foglio Elettronico
20.1
Esercizio 1;
20.2
Esercizio 2;
20.3
Esercizio 3;
20.4
Esercizio 4;
20.5
Esercizio 5;
20.6
Esercizio 6;
20.7
Esercizio 7;
20.8
Esercizio 8;
20.9
Esercizio 9;
20.10 Esercizio 10;
20.11 Esercizio 11;
20.12 Esercizio 12;
20.13 Esercizio 13;
20.14 Esercizio 14;
20.15 Esercizio 15;
20.16 Esercizio 16;
20.17 Esercizio 17;
20.18 Esercizio 18;
20.19 Esercizio 19;
20.20 Esercizio 20;
20.21 Esercizio 21.
Dati sulla lezione
|
Versione: |
v1.0 |
|
Tempi: |
1 ½ ora / 90 minuti |
|
Data svolgimento lezione: |
14 Maggio 2003 |
|
Autore dei contenuti: |
Vastapane Marco Attilio / Giuliano Luca |
|
Autore materiali didattici: |
Togni Francesca |
La Pratica
Per poter utilizzare questi comandi, occorre connetterci con il file database_excel, ed utilizzare il Microsoft Query, come già detto in precedenza; è necessario caricare la tabella Agenti$.
Una volta completata la procedura di connessione, la videata che ci appare dovrebbe essere questa:

Per i nostri esempi utilizzeremo l’ormai nota tabella Agenti$, situata nel file database_excel.xls
Esempio
La tabella "Agenti$" ha questa struttura

Selezionare tutti
i dati dalla tabella Agenti$
q Premere il tasto SQL dal pannello principale

q Nella finestra di dialogo comparsa, digitare il seguente codice, quindi premere OK

q Ecco il risultato che si ottiene : la presenza di tutti i record della tabella di origine
|
Codice |
Nominativo |
Zona |
Provvigioni |
|
aa1 |
Paolo Rossi |
Nord |
500,0 |
|
aa2 |
Gianni Bianchi |
Sud |
200,0 |
|
aa3 |
Sara Verdi |
Est |
200,0 |
|
aa4 |
Luisa Verdini |
Nord |
200,0 |
|
aa5 |
Maria Bianchetti |
Ovest |
500,0 |
|
aa6 |
Alessandro Ugo |
Nord |
600,0 |
|
aa7 |
Dante Pila |
Nord |
350,0 |
|
aa8 |
Lucio Giulio |
Ovest |
500,0 |
|
aa9 |
Marco Feri |
Sud |
600,0 |
|
ab1 |
Giovanna Sasti |
Est |
200,0 |
|
ab2 |
Arturo Cavalli |
Nord |
500,0 |
|
ab3 |
Anna Blussi |
Sud |
350,0 |
|
ab4 |
Marco Ginetti |
Ovest |
350,0 |
|
ab5 |
Rosa Babozzi |
Est |
500,0 |
|
ab6 |
John Esposito |
Ovest |
350,0 |
|
ab7 |
Arturo De Fanti |
Sud |
600,0 |
|
bb1 |
Silvio Perluschino |
Est |
10000,0 |
|
bb2 |
Michele Bonasera |
Nord |
8000,0 |
|
bb3 |
Natalia Sentiero |
Nord |
5000,0 |
Se andiamo ora ad evocare la finestra di dialogo riservata al codice SQL, ecco cosa vediamo nel suo interno.

Sviluppato originariamente nei laboratori IBM, è stato infatti implementato in un prodotto commerciale già nei primi anni '80. Negli anni però anche SQL, linguaggio chiaro, semplice e incredibilmente efficace, ha dovuto subire varie versioni e dialetti che hanno un po' complicato il passaggio da un database all'altro. E quindi oggi non è più esattamente uno standard universale. Ma rimane comunque lo strumento più usato.
Nel nostro esempio, il codice perfettamente funzionante riservato a selezionare tutti i dati, l’asterisco, è stato sostituito dall’elencazione di ogni campo della tabella posto in relazione con la tabella di origine; inoltre l’origine della ricerca, la tabella Agenti$, è stata sostituita dal percorso indicante il punto del disco rigido in cui è memorizzato l’archivio del computer di chi vi scrive.
Se si desidera, è possibile restituire i dati ad Excel, con la consueta procedura.
Selezionare il
nominativo di tutti gli agenti
q Premere il tasto SQL dal pannello principale
q
Nella finestra di dialogo comparsa, digitare il
seguente codice, quindi premere OK

Ecco il risultato che si ottiene
|
Nominativo |
|
Paolo Rossi |
|
Gianni Bianchi |
|
Sara Verdi |
|
Luisa Verdini |
|
Maria Bianchetti |
|
Alessandro Ugo |
|
Dante Pila |
|
Lucio Giulio |
|
Marco Feri |
|
Giovanna Sasti |
|
Arturo Cavalli |
|
Anna Blussi |
|
Marco Ginetti |
|
Rosa Babozzi |
|
John Esposito |
|
Arturo De Fanti |
|
Silvio Perluschino |
|
Michele Bonasera |
|
Natalia Sentiero |
Selezionare il
Nominativo,la zona e le provvigioni dalla tabella Agenti, alla condizione che
le provvigioni siano uguali a 500 euro
q Premere il tasto SQL dal pannello principale
q
Nella finestra di dialogo comparsa, digitare il
seguente codice, quindi premere OK

|
Nominativo |
Zona |
Provvigioni |
|
Paolo Rossi |
Nord |
500,0 |
|
Maria Bianchetti |
Ovest |
500,0 |
|
Lucio Giulio |
Ovest |
500,0 |
|
Arturo Cavalli |
Nord |
500,0 |
|
Rosa Babozzi |
Est |
500,0 |
Selezionare i dati di
Paolo Rossi oppure di Anna Blussi alla
condizione che le provvigioni siano uguali a 500 euro
q Premere il tasto SQL dal pannello principale
q Nella finestra di dialogo comparsa, digitare il seguente codice, quindi premere OK

Ecco il risultato
|
Codice |
Nominativo |
Zona |
Provvigioni |
|
aa1 |
Paolo Rossi |
Nord |
500,0 |
Continuiamo gli esercizi, abbandonando il supporto dell’interfaccia grafica, che sicuramente avrete imparato ad usare.
Selezionare i dati di
Paolo Rossi oppure di Rosa Babozzi alla
condizione che le provvigioni siano uguali a 500 euro
q Digitare il seguente codice SQL

|
Codice |
Nominativo |
Zona |
Provvigioni |
|
aa1 |
Paolo Rossi |
Nord |
500,0 |
|
ab5 |
Rosa Babozzi |
Est |
500,0 |
Selezionare i dati di
tutti gli agenti alla condizione che le
provvigioni siano uguali a 500 euro e che appartengano alla zona Nord
q Digitare il seguente codice SQL

Ecco cosa si ottiene
|
Nominativo |
Zona |
Provvigioni |
|
Paolo Rossi |
Nord |
500,0 |
|
Arturo Cavalli |
Nord |
500,0 |
Selezionare il
nominativo e le provvigioni degli agenti alla condizione che le provvigioni siano comprese tra 400 e 1000
euro
q Digitare il seguente codice SQL

Ecco il risultato ottenuto
|
Nominativo |
Provvigioni |
|
Paolo Rossi |
500,0 |
|
Maria Bianchetti |
500,0 |
|
Alessandro Ugo |
600,0 |
|
Lucio Giulio |
500,0 |
|
Marco Feri |
600,0 |
|
Arturo Cavalli |
500,0 |
|
Rosa Babozzi |
500,0 |
|
Arturo De Fanti |
600,0 |
Selezionare tutti i
dati degli Agenti che hanno il nominativo che inizia con la lettera A
q Digitare il seguente codice SQL

|
Codice |
Nominativo |
Zona |
Provvigioni |
|
aa6 |
Alessandro Ugo |
Nord |
600,0 |
|
ab2 |
Arturo Cavalli |
Nord |
500,0 |
|
ab3 |
Anna Blussi |
Sud |
350,0 |
|
ab7 |
Arturo De Fanti |
Sud |
600,0 |
Selezionare tutti i
dati degli Agenti che hanno il nominativo che termina con la lettera O
q Digitare il seguente codice SQL

|
Codice |
Nominativo |
Zona |
Provvigioni |
|
aa6 |
Alessandro Ugo |
Nord |
600,0 |
|
aa8 |
Lucio Giulio |
Ovest |
500,0 |
|
ab6 |
John Esposito |
Ovest |
350,0 |
|
bb1 |
Silvio Perluschino |
Est |
10000,0 |
|
bb3 |
Natalia Sentiero |
Nord |
5000,0 |
Selezionare tutti i
dati degli Agenti che hanno il nominativo che contiene la doppia ss
q Digitare il seguente codice SQL
Ecco il risultato.
|
Codice |
Nominativo |
Zona |
Provvigioni |
|
aa1 |
Paolo Rossi |
Nord |
500,0 |
|
aa6 |
Alessandro Ugo |
Nord |
600,0 |
|
ab3 |
Anna Blussi |
Sud |
350,0 |
Selezionare tutti i
singoli valori delle provvigioni percepite
q Digitare il seguente codice SQL

Ecco il risultato.
|
Provvigioni |
|
200,0 |
|
350,0 |
|
500,0 |
|
600,0 |
|
5000,0 |
|
8000,0 |
|
10000,0 |
Selezionare tutti i
dati degli Agenti ordinando i valori delle provvigioni percepite in ordine
crescente
q Digitare il seguente codice SQL

Ecco il risultato
|
Codice |
Nominativo |
Zona |
Provvigioni |
|
ab1 |
Giovanna Sasti |
Est |
200,0 |
|
aa2 |
Gianni Bianchi |
Sud |
200,0 |
|
aa3 |
Sara Verdi |
Est |
200,0 |
|
aa4 |
Luisa Verdini |
Nord |
200,0 |
|
ab6 |
John Esposito |
Ovest |
350,0 |
|
ab4 |
Marco Ginetti |
Ovest |
350,0 |
|
ab3 |
Anna Blussi |
Sud |
350,0 |
|
aa7 |
Dante Pila |
Nord |
350,0 |
|
aa5 |
Maria Bianchetti |
Ovest |
500,0 |
|
aa8 |
Lucio Giulio |
Ovest |
500,0 |
|
aa1 |
Paolo Rossi |
Nord |
500,0 |
|
ab2 |
Arturo Cavalli |
Nord |
500,0 |
|
ab5 |
Rosa Babozzi |
Est |
500,0 |
|
aa6 |
Alessandro Ugo |
Nord |
600,0 |
|
ab7 |
Arturo De Fanti |
Sud |
600,0 |
|
aa9 |
Marco Feri |
Sud |
600,0 |
|
bb3 |
Natalia Sentiero |
Nord |
5000,0 |
|
bb2 |
Michele Bonasera |
Nord |
8000,0 |
|
bb1 |
Silvio Perluschino |
Est |
10000,0 |
Selezionare Nominativo,
zona e provvigioni ordinando i dati in ordine decrescente in base al nominativo
q Digitare il seguente codice SQL

Ecco il risultato
|
Nominativo |
Zona |
Provvigioni |
|
Silvio Perluschino |
Est |
10000,0 |
|
Sara Verdi |
Est |
200,0 |
|
Rosa Babozzi |
Est |
500,0 |
|
Paolo Rossi |
Nord |
500,0 |
|
Natalia Sentiero |
Nord |
5000,0 |
|
Michele Bonasera |
Nord |
8000,0 |
|
Maria Bianchetti |
Ovest |
500,0 |
|
Marco Ginetti |
Ovest |
350,0 |
|
Marco Feri |
Sud |
600,0 |
|
Luisa Verdini |
Nord |
200,0 |
|
Lucio Giulio |
Ovest |
500,0 |
|
John Esposito |
Ovest |
350,0 |
|
Giovanna Sasti |
Est |
200,0 |
|
Gianni Bianchi |
Sud |
200,0 |
|
Dante Pila |
Nord |
350,0 |
|
Arturo De Fanti |
Sud |
600,0 |
|
Arturo Cavalli |
Nord |
500,0 |
|
Anna Blussi |
Sud |
350,0 |
|
Alessandro Ugo |
Nord |
600,0 |
Selezionare il
conteggio dei record presenti nella tabella Agenti$
q Digitare il seguente codice SQL

|
Conteggio(nominativo) |
|
19 |
Selezionare il conteggio dei record presenti nella tabella Agenti$,
modificando l’intestazione della cella in TOTALE
q Digitare il seguente codice SQL

|
TOTALE |
|
19 |
Selezionare il valore più alto della provvigione presente nella tabella
Agenti$, modificando l’intestazione della cella in Provvigione Massima
q Digitare il seguente codice SQL

|
Provvigione massima |
|
10000,0 |
Scrivere il codice
SQL per ottenere il valore minimo delle provvigioni della zona Sud, impostando
l’etichetta come ‘Provvigione Zona Sud – valore minimo’
Risultato:
|
Provvigione Zona Sud- valore
minimo |
|
200,0 |
Scrivere il codice
SQL per ottenere il valore medio delle provvigioni della zona Ovest, impostando
l’etichetta come ‘Provvigione Zona Ovest – valore medio
Risultato:
|
Provvigione Zona Ovest-
valore medio |
|
425,0 |
Scrivere il codice
SQL per ottenere la somma delle provvigioni della zona Nord, impostando
l’etichetta come ‘Provvigione Zona Nord– Totale’
Risultato:
|
Provvigione Zona Nord- Totale |
|
15150,0 |
Inserire da SQL i
dati di un nuovo agente
|
Codice |
Nominativo |
Zona |
Provvigioni |
|
zz9 |
Walter Superbi |
Nord |
450,0 |
q Dal Microsoft Query selezionare la finestra riservata all’SQL e scrivere il codice, con le accortezze che seguono:

q Insert into `C:\Documents and
Settings\vasta\Desktop\database_excel`.`Agenti$` values ('zz1','Walter
Superbi','Nord','450')
dove la parte scritta in rosso, è la cartella sul disco C in cui è salvato l’archivio database_excel.
Nell’ eventualità che si riscontrassero problemi con la ricerca del separatore ` ,
si ricorda che lo si ottiene premendo ALT+96
Ovviamente ognuno di voi dovrà sostituire a quella stringa, la propria,
andandola a vedere dalla barra dell’indirizzo delle cartelle.
q Premere OK.
q Alla visualizzazione del messaggio dal programma, premere nuovamente OK

q Comparirà il messaggio di avvenuto inserimento

Se ora andiamo a visualizzare il database_excel, vedremo che i dati sono stati inseriti nell’archivio.

Modificare da SQL i
dati di Silvio Perluschino : provvigioni = 150
|
Codice |
Nominativo |
Zona |
Provvigioni |
|
bb1 |
Silvio Perluschino |
Est |
10000,0 |
q Dal Microsoft Query selezionare la finestra riservata all’SQL e scrivere il codice, con le accortezze che seguono:
q
Update `C:\Documents and
Settings\vasta\Desktop\database_excel`.`Agenti$` set provvigioni=150 where codice=’bb1’
dove la parte scritta in rosso, è la cartella sul disco C in cui è salvato l’archivio database_excel.
q Premere OK.
q Alla visualizzazione del messaggio dal programma, premere nuovamente OK

q Comparirà il messaggio di avvenuto inserimento

Se ora andiamo a visualizzare il database_excel, vedremo che i dati di Silvio Perluschino sono stati modificati.
Per sicurezza, le modifiche sono state apportate al record alla condizione che la clausola where fosse il codice: questo perché , in caso di omonimia , non si verificassero modifiche su record da mantenere inalterati.

Non è obbligatorio inviare l’esercizio al tutor.
Feedback
Per
chiarimenti, si prega di lasciare la domanda direttamente sul Forum della
piattaforma Maestra.