[:it]SQL: DELETE[:]

[:it]

Paul David Bond

Oltre che estrarre dei valori, spesso si vuole anche cancellarli.

Per poter fare questa operazione valgono tutte le regole della clausola WHERE

Ad esempio il seguente comando cancella tutti i record talla tabella Gioco.

delete from Gioco

Se la tabella gioco contiene i seguenti record:

Gioco
IDgioco Nomegioco
5 monopoli
6 scacchi
7 dama

si vuole cancellare solo il record che contiene il gioco della dama si deve eseguire la seguente query.

DELETE FROM GIOCO WHERE nomegioco = ‘dama’[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]SQL: funzioni GROUP BY, COUNT, SUM, AS, AVG[:]

[:it]

Paul David Bond

Spesso, da una tabella si richiedono dei raggruppamenti, sapere la somma di colonne numeriche, sapere quante colonne fanno parte di una tabella.

Ad esempio riprendendo l’esempio degli alunni di una classe del post Join, si vuole sapere quanti sono gli alunni di una classe.

COMANDO GROUP BY e COUNT(*)

Bisogna raggrupparli per classe e contare quanti sono.

In una scuola vi sono molti alunni e molte classi per cui il conto manuale sarebbe improponibile e fonte di numerosi errori.

Il comando per sapere quanti sono gli alunni di una classe risulta il seguente:

SELECT 
count(*)
FROM
anagrafica
GROUP By id_classe

 

L’esito della query precedente fornisce il seguente risultato:

group by
Expr1000
4
3

Come si nota una query del genere ha poco significato ed è di difficile lettura allora voglio anche il nome della classe di cui si vuole conoscere il numero degli studenti.

La query, indubbiamente complessa è la seguente:

SELECT
classe.nome,
count(*)
FROM
anagrafica,
classe
WHERE
anagrafica.id_classe=classe.id_classe
GROUP BY anagrafica.id_classe, classe.nome;

Riflessioni su questa query:

all’interno del comando Group by si deve mettere sia l’id_classe che il nome della classe ossia le stesse colonne che compaiono nella SELECT.

L’esito è il seguente:

group by
nome Expr1001
Prima 4
Seconda 3

Adesso l’esito è indubbiamente migliore ma non ancora il massimo!

Il nome delle colonne non è chiarissimo ma voglio dare un nome più coerente con il suo contenuto.

AS

Il comando AS permette di rinominare una colonna.

Nel caso della query precedente si ha:

SELECT
classe.nome AS classe,
Count(*) AS studenti
FROM
anagrafica,
classe
WHERE
anagrafica.id_classe=classe.id_classe
GROUP BY classe.nome, anagrafica.id_classe;

SUM

Supponiamo adesso che ogni studente abbia versato una quota per la partecipazione della gita e voglio sapere il totale della cifra a disposizione.

Naturalmente la tabella Anagrafica deve contemplare adesso la colonna quota all’interno della quale si è inserita la cifra versata dal relativo studente.

La tabella anagrafica contiene i seguenti dati:

selectanagrafica
ID_anagrafica nome id_classe quota
1 Paolo 1 € 41,00
2 Filippo 1 € 32,00
3 Maria 1 € 25,00
4 Giovanna 1 € 32,00
5 Tommaso 2 € 52,00
6 Marta 2 € 12,00
7 Giovanna 2 € 12,00

La query sarà la seguente:

SELECT
SUM(quota) AS TOTALE
from anagrafica
WHERE
id_classe=1;

che fornisce come risultato:

SUM
TOTALE
€ 130,00

 

AVG

Se voglio conoscere il valore medio della quota versata dai singoli ragazzi si deve eseguire la seguente query.

SELECT
AVG(quota) AS media
from anagrafica
WHERE
id_classe=1;

che fornisce come risultato:

AVG
MEDIA
€ 32,50

 

 

 [:]

Pubblicato in Senza categoria | Lascia un commento

[:it]SQL: Join[:]

[:it]

Paul David Bond

Nel caso in cui si volessero estrarre  dei dati che sono distribuiti su due tabelle messe in relazione tra loro, è  necessario usare una JOIN.

Il comando è il seguente:

SELECT tabella1.colonna3, tabella2.colonna4

FROM tabella1, tabella2

WHERE

tabella1.colonna2=tabella2.colonna1

Ad esempio si abbia il seguente database così relazionato:

Si vogliono estrarre i nominativi dei ragazzi appartenenti alla stessa classe con il nome della relativa classe.

Si eseguirà la seguente QUERY

 

SELECT
anagrafica.nome,
classe.nome
FROM
anagrafica,
classe
WHERE
anagrafica.id_classe=classe.id_classe

E’ consuetudine e buona norma che il nome delle colonne siano messe in colonna come pure l’elenco delle tabelle e le condizioni di WHERE questo perchè nel caso in cui si volesse aggiungere o togliere una colonna o una tabella o una condizione si cancella o si aggiunge velocemente e la lettura è molto agevole.

La tabella anagrafica contiene i seguenti dati:

Query1
ID_anagrafica nome id_classe
1 Paolo 1
2 Filippo 1
3 Maria 1
4 Giovanna 1
5 Tommaso 2
6 Marta 2
7 Giovanna 2

La tabella Classe i seguenti dati:

Query1
ID_classe nome Sezione
1 Prima OSI
2 Seconda OSI
3 Terza OSI

Il comando di JOIN fornisce il seguente esito:

Join
anagrafica.nome classe.nome
Paolo Prima
Filippo Prima
Maria Prima
Giovanna Prima
Tommaso Seconda
Marta Seconda
Giovanna Seconda

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Esercizi di base sulle percentuali[:]

[:it] 

Vito Campanella

 

 

Pensare sempre le percentuali come frazioni.

Tale trucco permette sempre di risolvere tutti i relativi problemi.

 

 

Tipo A

Trasformare i dati che seguono in percentuale:

A.1. 12 ragazzi su 60 suonano uno strumento  \left [ 20\% \right ]
A.2. 6 ragazzi su 18 giocano a tennis \left [ 33\% \right ]
A.3. 21 ragazzi su 28 possiedono uno scuter \left [ 75\% \right ]
A.4. 3 ragazzi su 30 trascorrono le vacanze all’estero \left [10\% \right ]
A.5. 6 ragazzi su 80 sono titolari di un conto corrente  \left [ 7,5\% \right ]
A.6. 9 ragazzi su 36 portano gli occhiali  \left [ 25\% \right ]
A.7. 55€ rispetto 200€  \left [ 27,5\% \right ]
A.8 45€ rispetto 300€ \left [ 15\% \right ]
A.9 13,49€ rispetto 19€  \left [ 71\% \right ]
A.10. 1,56€ rispetto 7,80€ \left [ 20\% \right ]
A.11. 0,1625€ rispetto a 3,25€ \left [ 5\% \right ]
A.12. 1027,5 rispetto a 685€ \left [ 150\% \right ]

Tipo B

Calcolare il

B.1 10% di 3.200  \left [ 320 \right ]
B.2 12% di 50 \left [ 6 \right ]
B.3 20% di 42 \left [ 8,4 \right ]
B.4 13% di 23 \left [ 2,99 \right ]
B.5 50% di 1000 \left [ 500 \right ]
B.6 20% di 3,99 \left [ 0,798 \right ]
B.7. 22% di 1200 \left [ 264 \right ]
B.8. 15% di 13 \left [ 1,95 \right ]

 

Tipo BC

Aumentare il costo di:

BC.1. 440€ del 12%  \left [ 492,8\right ]
BC.2. 2,8€ del 1% \left [ 2,828 \right ]
BC.3. 10,80 del 30% \left [ 14,04 \right ]
BC.4. 1,24 del 3% \left [ 1,27 \right ]
BC.5. 27,30 del 2,5% \left [ 27,98 \right ]
BC.6 400€ del 1,275% \left [ 405,1 \right ]

Tipo BD

Diminuire il costo di:

BD.1. 3500€ del 12%
BD.2. 234€ del 23%
BD.3. 45€ del 67%
BD.4. 1500€ el 12%
BD.5. 700€ del 54%
BD.6.  960 del 12%

 [:]

Pubblicato in Senza categoria | 2 commenti

[:it]Verifica sul passaggio da decimale finito/illimitato a frazione[:]

[:it]

Vito Campanella

Questo test richiede un minimo di concentrazione e manualità con il passaggio da decimale a frazione.

Non presenta grandi difficoltà ma solo attenzione ed automatismo nel meccanismo.

[WpProQuiz 35][:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Word: esercizio stampa unione[:]

[:it]

Jamie Baldridge

Sviluppare il seguente esercizio sia su word che su open office

Creare il seguente documento:

Instestazione:

Istituto Comprensivo “x y”

Via A. Vespucci n.4 – Milano

Tel. 02.3456789 – Fax 02.9876543

 

Corpo del documento

Prot.

 

Milano, ……………..

 

 

Rappresentanti di classe

Sig/Sig.ra

“nome” “cognome”

“indirizzo”

“cap” “città”

 

Oggetto : convocazione Interclasse

 

Si comunica che in data 25/04/03 si effettuerà la riunione di Interclasse programmata, come da calendario trasmesso nel mese di settembre, presso la scuola elementare “G. Pascoli” dalle ore 17.00 alle ore 18.00 per l’esplicitazione dei seguenti punti all’o.d.g.:

  1. situazione classi
  2. progetti
  3. proposte
  4. comunicazioni

 

IL DIRIGENTE SCOLASTICO

 

  1. Crea l’elenco dei destinatari della comunicazione come segue:

 

NOME                       INDIRIZZO                                     CITTA’

Verdi Giammario       Via Larga n. 100                                20100 MILANO

Bianchi Rosa              Via Cadorna n. 27                             20100 MILANO

Fabbri Donato                        Via Carducci n. 44                             20100 MILANO

Sordella Giuseppe      Corso Italia n. 153                             20100 MILANO

Codoni Giorgio          Via Montenapoleone n. 12                20100 MILANO

 

  1. Salva l’elenco col nome INDIRIZZI
  2. Unisci il documento ai campi degli indirizzi

Salva il documento[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]Verifica sulle equazioni di I grado con le frazioni[:]

[:it]

Vito Campanella

Una verifica che richiede solo attenzione ed aver automatizzato il procedimento risolutivo in seguito ai numerosi esercizi sviluppati  precedentemente nel relativo capitolo del blog.

[WpProQuiz 36][:]

Pubblicato in Senza categoria | Lascia un commento

[:it]SQL: esercizio 1 sulle query[:]

[:it]

Paul David Bond

Dato lo schema relazionale costituito dalle seguenti tabelle (le chiavi primarie sono sottolineate)

PERSONE(idpersona, CodFisc, Nome, Cognome, Indirizzo, Citta)

MULTE(IdMulta, idpersona, DataMulta, Somma)

Popolare il database con i seguenti dati:

Persone
id_persona CodFisc Nome Cognome Indirizzo Citta
1 BRGFNC68T18L736H Giovanni Capuano Via dei Vanga 63 Bolzano
2 ctrcfg57r19u584h Mario Rossi Via rossi 34 Bolzano
3 GHTERT87T2343J90 Rosa Gialla Via Domenicani 54 Bolzano
Multe
ID_multa Id_persona DataMulta Somma
1 1 19/12/2005 € 60,00
2 2 08/12/2005 € 56,00
3 1 08/12/2005 € 78,00
4 3 08/12/2016 € 100,00
5 3 07/12/2016 € 58,00
6 1 08/12/2004 € 48,00
7 2 15/01/2004 € 52,00
8 2 12/02/2004 € 48,00

Creare le seguenti query dandogli il nome query# con# il relativo punto di menù

  1. estrarre tutti i record della tabella persone
  2. estrarre tutti i record della tabella multe
  3. estrarre tutte le persone con la relativa multa
  4. estrarre la cifra totale delle multe prese dalle singole persone
  5. Calcolare il valore medio di tutte le multe comminate
  6. estrarre il nome delle persone che hanno preso delle multe nel 2005
  7. estrarre il nome delle persone che hanno preso delle multe nel 2016
  8. estrarre il nome delle persone che hanno preso delle multe nel 2014
  9. estrarre le multe solo del Sig. Capuano
  10. estrarre il nome delle persone che hanno preso una multa a dicembre del 2005

[:]

Pubblicato in Senza categoria | 2 commenti

[:it]SQL: Esercizio5[:]

[:it]

SQUADRA (Id_squadra, nome, ID_allenatore, id_giocatore, nome_squadra, id_campionato)

ALLENATORE (Id_allenatore, nome)

GIOCATORE(Id_giocatore, nome)

CaMPIONATO (Id_campionato, nome_campionato)

Nell’immagina a fianco si notino le seguenti notazioni:

  • C.R.: campo di ricerca ossia quando si inseriscono dei dati, questi devono essere presenti nella tabella con cui si collega il link.
  • Il numero cerchiato indica l’ordine di popolamento della tabella.

[:]

Pubblicato in Senza categoria | Lascia un commento

[:it]SQL: esercizio 4[:]

[:it]

ROMANZI (CodiceR, Titolo, NomeAut, Anno)

PERSONAGGI (NomeP. CodiceR, sesso, ruolo)

AUTORI (NomeAut, AnnoN, AnnoM, Nazione)

FILM(CodiceF, Titolo, Regista, Produttore, Anno, CodiceR)

Nell’immagina a fianco si notino le seguenti notazioni:

  • C.R.: campo di ricerca ossia quando si inseriscono dei dati, questi devono essere presenti nella tabella con cui si collega il link.
  • Il numero cerchiato indica l’ordine di popolamento della tabella.

 [:]

Pubblicato in Senza categoria | Lascia un commento