Come nella maggior parte dei linguaggi di programmazione, SQL dispone di funzioni per l'elaborazione dei dati. Vale la pena notare che, a differenza delle istruzioni SQL, le funzioni non sono standardizzate per tutti i tipi di DBMS, ovvero per eseguire le stesse operazioni sui dati, diversi DBMS hanno i propri nomi di funzione. Ciò significa che il codice di query scritto in un DBMS potrebbe non funzionare in un altro e di questo si dovrà tenere conto in futuro. Ciò si applica principalmente alle funzioni per l'elaborazione di valori di testo, la conversione di tipi di dati e la manipolazione delle date.
La maggior parte dei DBMS supportano un insieme standard di tipi di funzioni, vale a dire:
L'implementazione SQL in MS Access dispone delle seguenti funzioni per l'elaborazione del testo:
Funzione | Descrizione |
---|---|
Left() | Seleziona i caratteri nel testo da sinistra |
Right() | Seleziona i caratteri nel testo a destra |
Mid() | Seleziona i caratteri dal centro del testo |
UCase() | Converte i caratteri in maiuscolo |
LCase() | Converte i caratteri in minuscolo |
LTrim() | Rimuove tutti i caratteri vuoti a sinistra del testo |
RTrim() | Rimuove tutti i caratteri vuoti a destra del testo |
Trim() | Rimuove tutti i caratteri vuoti da entrambi i lati del testo |
Convertiamo i nomi dei prodotti in maiuscolo utilizzando la funzione UCase():
Run SQLSELECT Product, UCase(Product) AS Product_UCase
FROM Sumproduct
Evidenziamo i primi tre caratteri del testo utilizzando la funzione LEFT():
Run SQLSELECT Product, LEFT(Product, 3) AS Product_LEFT
FROM Sumproduct
Le funzioni di elaborazione dei numeri sono progettate per eseguire operazioni matematiche su dati numerici. Queste funzioni sono progettate per calcoli algebrici e geometrici, quindi vengono utilizzate molto meno spesso delle funzioni di elaborazione di data e ora. Tuttavia, le funzioni numeriche sono le più standardizzate in tutte le versioni di SQL. Diamo un'occhiata all'elenco delle funzioni numeriche:
Funzione | Descrizione |
---|---|
SQR() | Restituisce la radice quadrata del numero specificato |
ABS() | Restituisce il valore assoluto di un numero |
EXP() | Restituisce l'esponente del numero specificato |
SIN() | Restituisce il seno dell'angolo specificato |
COS() | Restituisce il coseno dell'angolo specificato |
TAN() | Restituisce la tangente dell'angolo specificato |
Abbiamo elencato solo alcune delle funzionalità principali, ma puoi sempre fare riferimento alla documentazione del DBMS per un elenco completo delle funzionalità supportate con descrizioni dettagliate.
Ad esempio, scriviamo una query per ottenere la radice quadrata dei numeri nella colonna Importo utilizzando la funzione SQR():
Run SQLSELECT Amount, SQR(Amount) AS Amount_SQR
FROM Sumproduct
Le funzioni di manipolazione di data e ora sono tra le funzioni SQL più importanti e utilizzate di frequente. Nei database, i valori di data e ora vengono archiviati in un formato speciale, quindi non possono essere utilizzati direttamente senza un'ulteriore elaborazione. Ogni DBMS ha il proprio set di funzioni per l'elaborazione dei dati, che purtroppo non ne consente il trasferimento su altre piattaforme e implementazioni SQL.
Elenco di alcune funzioni per la gestione di data e ora in MS Access:
Funzione | Descrizione |
---|---|
DatePart() | Restituisce parte di una data: anno, trimestre, mese, settimana, giorno, ora, minuto, secondo |
Year(), Month() | Restituisce rispettivamente l'anno e il mese |
Hour(), Minute(), Second() | Restituisce l'ora, i minuti e i secondi della data specificata |
WeekdayName() | Restituisce il nome del giorno della settimana |
Diamo un'occhiata ad un esempio di come funziona la funzione DatePart():
SELECT Date1, DatePart("m", Date1) AS Month1
FROM Sumproduct
La funzione DatePart() ha un parametro aggiuntivo che ci consente di visualizzare la parte richiesta della data. Nell'esempio abbiamo utilizzato il valore del parametro "m", che visualizza il numero del mese (allo stesso modo possiamo visualizzare l'anno - "aaaa", il trimestre - "q", il giorno - "d", la settimana - "w", l'ora - "h", i minuti - "n", i secondi - "s", ecc.).
Le funzioni statistiche ci aiutano a ottenere dati pronti senza campionarli. Le query SQL con queste funzioni vengono spesso utilizzate per analizzare e generare vari report. Un esempio di tali selezioni può essere: determinare il numero di righe in una tabella, ottenere la somma dei valori per un determinato campo, cercare il valore più grande/più piccolo o medio nella colonna specificata della tabella. Notiamo inoltre che le funzioni statistiche sono supportate da tutti i DBMS senza particolari modifiche scritte.
Elenco delle funzioni statistiche nel DBMS Access:
Funzione | Descrizione |
---|---|
COUNT() | Restituisce il numero di righe in una tabella o colonna |
SUM() | Restituisce la somma dei valori in una colonna |
MIN() | Restituisce il valore più piccolo in una colonna |
MAX() | Restituisce il valore più grande in una colonna |
AVG() | Restituisce il valore medio in una colonna |
Restituisce il numero di tutte le righe nella tabella:
Run SQLSELECT COUNT(*) AS Count1
FROM Sumproduct
Restituisce il numero di tutte le righe non vuote nel campo Prodotto:
SELECT COUNT(Product) AS Count2
FROM Sumproduct
Abbiamo intenzionalmente rimosso un valore nella colonna Prodotto per mostrare la differenza di prestazioni tra le due query.
Run SQLSELECT SUM(Quantity) AS Sum1
FROM Sumproduct
WHERE Month = 'April'
Con questa richiesta abbiamo visualizzato l'importo totale della merce venduta nel mese di aprile.
Run SQLSELECT SUM(Quantity*Amount) AS Sum2
FROM Sumproduct
Come puoi vedere, nelle funzioni statistiche possiamo anche eseguire calcoli su più colonne utilizzando operatori matematici standard.
Run SQLSELECT MIN(Amount) AS Min1
FROM Sumproduct
Run SQLSELECT MAX(Amount) AS Max1
FROM Sumproduct
Run SQLSELECT AVG(Amount) AS Avg1
FROM Sumproduct