Linguaggio SQL: una veloce panoramica

di | 29 Aprile 2019

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]