DISPENSE A CURA DEL DOCENTE
Margherita Demichelis
CORSO DI
B22-432-2025-0
Elementi di programmazione
Fondamenti di base dati
presentato da
Margherita
Demichelis
Estrazione di dati
Commenti - esempio
--
-- #MD202602 – non serve più la colonna2
--
SELECT colonna1,
-- colonna2,
colonna3
FROM nome_tabella;
SELECT - DISTINCT
SELECT DISTINCT colonna1 non mostra i valori duplicati dal risultato
FROM nome_tabella;
SELECT DISTINCT colonna1,
colonna2, l'univocità è data da tutte le colonne
…
FROM nome_tabella;
effettua un ordinamento, potrebbe richiedere tempo
funzioni di aggregazione - COUNT
SELECT COUNT(*)
conta tutte le righe dell'estrazione
FROM nome_tabella;
SELECT COUNT(nome_colonna)
conta i valori non nulli in colonna
FROM nome_tabella;
SELECT COUNT(DISTINCT nome_colonna) conta i valori distinti e non nulli*
FROM nome_tabella; in colonna
effettua un ordinamento, potrebbe richiedere tempo
funzioni di aggregazione
funzione risultato
COUNT() numero di righe o valori non-NULL
MIN() valore minimo
MAX() valore massimo
SUM() somma dei valori numerici
AVG() media aritmetica dei valori numerici
Condizioni di ricerca
SELECT colonna1,
colonna2,
...
FROM nome_tabella
WHERE condizione;
Condizioni di ricerca
SELECT colonna1,
colonna2,
...
FROM nome_tabella
WHERE colonna1 = valore;
Operatori nella clausola di WHERE
operatore funzione
= Uguale
> Maggiore
>= Maggiore o uguale
< Minore
<= Minore o uguale
<> Diverso (in alcune versioni di SQL viene scritto: != )
LIKE Ricerca per pattern
wildcard:
_ rappresenta un singolo carattere
% rappresenta più caratteri
BETWEEN Intervallo di valori, estremi inclusi
IN Insieme di valori precisato
IS [NOT] NULL Valore [non] nullo in una colonna
Condizioni di ricerca
SELECT colonna1,
colonna2,
...
FROM nome_tabella
WHERE colonna1 = valore1
AND colonna2 > valore2
OR colonna3 <= valore3
…
;
LIKE
select NOME_COLONNA(E)
from TABELLA
where NOME_COLONNA like pattern;
LIKE
Esempi
select *
from T000_PRODOTTI
where NOME_PRODOTTO like ’m%’;
select *
from T000_PRODOTTI
where NOME_PRODOTTO not like ’m%’;
LIKE - esempi
operatore funzione
’a%’ Trova qualsiasi valore che inizia con "a"
’%a’ Trova qualsiasi valore che termina con "a"
’%ma%’ Trova qualsiasi valore che abbia "ma" in qualsiasi posizione
’_r%’ Trova qualsiasi valore che abbia "r" nella seconda posizione
’a_%_%’ Trova qualsiasi valore che inizia con "a" e che sia lungo almeno 3 caratteri
’a%o’ Trova qualsiasi valore che inizia con "a" e termina con "o"
’E_e_pio’ Trova il valore che
inizia per "E"
AND
ha un qualsiasi carattere
AND
ha una "e"
AND
ha un qualsiasi carattere
AND
finisce con "pio"
LIKE - ESCAPE
select *
from T000_PRODOTTI
where NOME_PRODOTTO like '%$_%' escape '$';
$_ ricercherà il carattere _
BETWEEN
Esempi
select *
from T000_PRODOTTI
where COSTO between 50 and 60;
select *
from T000_PRODOTTI
where COSTO not between 50 and 60;
BETWEEN
select * select *
from T000_PRODOTTI from T000_PRODOTTI
where COSTO >= 50 where COSTO between 50 and 60;
and COSTO <= 60;
Clausole di WHERE equivalenti
IN
select NOME_COLONNA(E)
from TABELLA
where NOME_COLONNA in (valore1, valore1, …);
IN
select NOME_COLONNA(E)
from TABELLA
where NOME_COLONNA in (valore1, valore1, …);
select NOME_COLONNA(E)
from TABELLA
where NOME_COLONNA in (select statement);
IN
Esempi
select *
from T000_PRODOTTI
where COSTO in (50, 60);
select *
from T000_PRODOTTI
where COSTO not in (50, 60);
IN
select * select *
from T000_PRODOTTI from T000_PRODOTTI
where COSTO = 50 where COSTO in (50, 60);
or COSTO = 60;
Clausole di WHERE equivalenti
IS [NOT]NULL
select NOME_COLONNA(E)
from TABELLA
where NOME_COLONNA is null;
select NOME_COLONNA(E)
from TABELLA
where NOME_COLONNA is not null;
IS [NOT]NULL
NULL = NULL -> non restituisce TRUE
select NOME_COLONNA(E)
from TABELLA
where NOME_COLONNA = null;
Per il confronto
con NULL usare
IS NULL o
IS NOT NULL