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

20.1  -  Esercizio 1

 

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.

 

20.2  -  Esercizio2:

 

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

 

20.3  -  Esercizio3:

 

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

 

20.4  -  Esercizio4:

 

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.

 

20.5  -  Esercizio5:

 

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

 

20.6  -  Esercizio6:

 

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

 

20.7  -  Esercizio7:

 

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

 

20.8  -  Esercizio8:

 

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

 

20.9  -  Esercizio9:

 

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

 

20.10  -  Esercizio10:

 

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

 

20.11  -  Esercizio11:

 

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

 

20.12  -  Esercizio12:

 

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

 

20.13  -  Esercizio13:

 

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

 

20.14  -  Esercizio14:

 

Selezionare il conteggio dei record presenti nella tabella Agenti$

 

q     Digitare il seguente codice SQL

Conteggio(nominativo)

19

 

20.15  -  Esercizio15:

 

Selezionare il conteggio dei record presenti nella tabella Agenti$, modificando l’intestazione della cella in TOTALE

 

q     Digitare il seguente codice SQL

 

TOTALE

19

 

20.16  -  Esercizio16:

 

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

 

20.17  -  Esercizio17:

 

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

 

20.18  -  Esercizio18:

 

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

 

20.19  -  Esercizio19:

 

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

 

20.20  -  Esercizio20:

 

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.

 

 

20.21  -  Esercizio21:

 

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.