Il linguaggio SQL (Structured Query Language) è il linguaggio standard per la creazione, manipolazione e interrogazione dei Database relazionali come Access, Mysql, Oracle etc.
Si tratta di un linguaggio non procedurale, altrimenti detto “dichiarativo”; Sql non è un linguaggio CASE-SENSITIVE.
Il linguaggio Sql può essere idealmente scomposto in quattro “sottolinguaggi” che assolvono a diverse funzioni:
- DDL (Data Definition Language)
- DML (Data Manipulation Language)
- DCL (Data Control Language)
- QL (Query Language)
Vediamole nel dettaglio
Data Definition Language (DDL)
Sono tutti quei comandi in linguaggio SQL che permettono di creare o cancellare un database o una tabella; i principali sono:
CREATE, DROP, ALTER
Qui è possibile approfondire con la sintassi completa
Data Manipulation Language (DML)
Sono tutti quei comandi che permettono di inserire, eliminare o modificare i dati in una tabella; qui abbiamo:
INSERT, UPDATE, DELETE
A questo link è possibile approfondire la sintassi
Data Control Language
Si tratta di tutti i comandi per gestire l’accesso degli utenti al Database, qui i principali sono:
GRANT, REVOKE
A questo link si può approfondire la sintassi
Query Language
Qui il comando è uno solo, si tratta di SELECT, che permette di interrogare il database per recuperarne i dati; il risultato di una SELECT sarà sempre una nuova tabella temporanea che verrà poi utilizzata a seconda delle esigenze.
E’ possibile eseguire diversi tipi di operazioni relazionali, vediamo le principali partendo dalla tabella di esempio STUDENTI(id, nome, cognome, classe):
- Proiezione: la tabella risultante contiene lo stesso numero di righe della tabella di partenza ma un minor numero di attributi; Esempio [sql]SELECT nome, cognome FROM STUDENTI[/sql]
- Restrizione: la tabella risultante contiene lo stesso numero di campi della tabella di partenza, ma un minor numero di righe; Esempio [sql]SELECT * FROM STUDENTI WHERE classe=’3′; [/sql]
- Congiunzione (join): quando la tabella risultante è data dalla congiunzione di 2 (o più tabelle) unite tra loro tramite un attributo comune [approfondimento]
E possibile inoltre, con il comando SELECT, utilizzare le funzioni di aggregazione come
- COUNT: conta le righe
- MAX: restituisce il valore massimo
- MIN: restituisce il valore minimo
- AVG: calcola la media
- SUM: calcola la somma
Per esempio, per calcolare la media dei prezzi dei giocattoli scriveremo:
[sql]SELECT AVG(prezzi) FROM giocattoli[/sql]
Assieme alle funzioni di aggregazione è possibile utilizzare i raggruppamenti con la clausola GROUP BY.
Qui un approfondimento su funzioni di aggregazione e raggruppamenti.
E’ possibile, poi ordinare i risultati tramite la clausola ORDER BY, per esempio, se vogliamo ordinare gli studenti in ordine alfabetico:
[sql]SELECT * <br>FROM STUDENTI<br>ORDER BY cognome, nome[/sql]
Si può poi specificare l’ordine per ogni attributo: ASC (crescente) o DESC (decrescente).
Esiste, infine, la possibilità di creare delle query all’interno di altre query, in questo caso parliamo di query annidate [approfondimento]