Che materia stai cercando?

Informatica - le espressioni e le funzioni

Appunti con esercizi di idoneità di Informatica per l'esame del professor Grande sulle espressioni e le funzioni, con analisi dei seguenti argomenti: le espressioni carattere, le funzioni, le funzioni scalari, le funzioni colonna (o di gruppo), l'uso di DISTINCT, le query, le funzioni più complesse, il... Vedi di più

Esame di Informatica docente Prof. A. Grande

Anteprima

ESTRATTO DOCUMENTO

SELECT, WHERE, ORDER BY. A questo insieme di comandi aggiungiamo anche le funzioni

scalari mentre un discorso a parte, per motivi che saranno chiari nei capitoli successivi, meritano le

funzioni di gruppo. Per ora ci limiteremo ad usarle soltanto nella lista che segue SELECT con

l'ulteriore limitazione di non poter comparire assieme a nomi di attributi. Allo scopo di chiarire

quanto detto, consideriamo il seguente problema:vogliamo conoscere il prezzo medio delle

autovetture di lusso accanto al tipo di auto. Non tenendo conto di quanto appena detto, saremmo

portati a scrivere una query come la seguente:

SELECT uso, avg(lit)

FROM modello

WHERE uso = 'lusso'; [30]

L'esecuzione di tale query, con un messaggio che varia a seconda del software utilizzato, genera un

errore dovuto alla presenza di un attributo (uso) insieme ad una funzione di gruppo. La spiegazione

di questo errore risiede nel fatto che il calcolo di una funzione colonna comporta la "perdita" delle

componenti della relazione originale in termini di tuple: comunque non sara' disponibile alcun dato

dell’attributo Uso. Vedremo nel prossimo capitolo come evitare questo errore ed ottenere il risultato

voluto.

Consideriamo ora il seguente elenco in cui sono riportat le funzioni colonna con gli argomenti che

accettano ed i risultati che calcolano:

AVG(nome_col) calcola la media

COUNT(espressione | * ) conta le tuple

MAX(espressione) calcola il massimo

MIN(espressione) calcola il minimo

SUM(nome_col) calcola il totale

STDDEV(nome_col) calcola la deviazione standard

VARIANCE(nome_col) calcola la varianza

Vogliamo avvertire che la specificazione della parola DISTINCT, opzionale per una qualunque

delle precedenti funzioni, esclude dai calcoli i valori gia' considerati e questo, come vedremo in un

esempio, comportera' notevoli differenze nei risultati. Si noti ancora, come tra gli argomenti

possano comparire, a seconda della funzione, un attributo o una espressione.

La prima query, vuole conoscere il valore di cilindrata piu' alto di tutti. Di seguito riportiamo la

query ed il risultato ottenuto:

SELECT max(cc)

FROM modello;[31] MAX(CC)

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

4942

Ovviamente la query puo' includere condizioni di vario tipo. In questo caso, prima vengono

selezionate le tuple che rispettano la condizione, poi si procede al calcolo della funzione. Nella

query [29] viene richiesto il totale dei prezzi di tutte le autovetture di tipo "sportivo". La riportiamo

insieme al risultato ottenuto:

SELECT sum(lit)

FROM modello

WHERE uso = 'sport';[32] SUM(LIT)

--------

424915

Nel prossimo esempio faremo uso della funzione COUNT. Questa funzione in generale conteggia le

tuple che compongono una colonna. In particolare, come anticipato in precedenza, la specifica

dell'argomento "*", in alternativa ad un attributo, considera anche i valori nulli, e quindi si ricorre a

questa forma per contare la cardinalita' (il numero di tuple) di una relazione. Riportiamo la query

con il risultato che ottiene.

SELECT count(*)

FROM modello; [33]

COUNT(*)

--------

12

Nel caso in cui l'argomento sia costituito da un attributo, vengono conteggiate le tuple che hanno un

valore non nullo.

SELECT count(ggc)

FROM modello; [33.1] COUNT(GGC)

---------

9

La prossima query sfrutta le considerazioni precedenti riguardo gli argomenti della COUNT

calcolando per differenza quanti sono i valori nulli di un determinato attributo. In questo caso si fa

riferimento ai giorni di consegna.

SELECT count(*)-count(ggc)

FROM modello; [34] COUNT(*)-COUNT(GGC)

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

3

Lo stesso risultato si poteva ottenere contando le tuple risultanti dalla condizione ottenuta con ggc

pari a NULL.

8.3 L'uso di DISTINCT

Particolarmente importante risulta l'uso della funzione COUNT in abbinamento alla parola

DISTINCT. Consideriamo il seguente problema: vogliamo conoscere quante sono le differenti

categorie di uso di tutte le autovetture. La query ed il risultato ottenuto, compaiono nella query [35].

SELECT count(DISTINCT uso)

FROM modello; [35]

COUNT(DISTINCT USO)

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

4

La prossima query dimostra come la specificazione dell’opzione DISTINCT possa influenzare il

risultato. La prima query calcola la cilindrata media delle autovetture con cilindrata di 2500 oppure

4942, mentre la successiva effettua gli stessi calcoli escludendo i valori che sono stati gia'

conteggiati. Come si puo' vedere i risultati differiscono in modo abbastanza evidente.

Vogliamo far notare che la condizione posta con la WHERE, ha l'unico fine di facilitare i calcoli di

controllo.

SELECT avg(cc)

FROM modello

WHERE cc IN(2500,4942); [36]

AVG(CC)

-------

3476.8

SELECT avg(DISTINCT cc)

FROM modello

WHERE cc IN(2500,4942); [36.1]

AVG(DISTINCT CC)

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

3721


PAGINE

7

PESO

28.62 KB

PUBBLICATO

+1 anno fa


DESCRIZIONE APPUNTO

Appunti con esercizi di idoneità di Informatica per l'esame del professor Grande sulle espressioni e le funzioni, con analisi dei seguenti argomenti: le espressioni carattere, le funzioni, le funzioni scalari, le funzioni colonna (o di gruppo), l'uso di DISTINCT, le query, le funzioni più complesse, il conteggio della cardinalità.


DETTAGLI
Esame: Informatica
Corso di laurea: Corso di laurea in economia e commercio (POMEZIA, ROMA)
SSD:
A.A.: 2013-2014

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher valeria0186 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università La Sapienza - Uniroma1 o del prof Grande Antonio.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Informatica

Informatica - le reti e Internet
Appunto
Informatica - i fondamenti di Excel - (parte 1)
Appunto
Informatica - la Join - SQL
Appunto
Informatica -  le tabelle - SQL
Appunto