Linguaggio SQL
Il linguaggio per la definizione e manipolazione dei dati supportato da tutti i DBMS relazionali è l'SQL (Structured Query Language). Esso è diventato uno standard ufficiale nel 1986, e ha poi subito varie revisioni (la più recente è SQL:2016), una delle quali (SQL:1999/SQL3) ha introdotto delle caratteristiche object-relational. In realtà, le versioni di SQL implementate dai DBMS presentano alcune piccole variazioni rispetto allo standard.
L'SQL è un linguaggio dichiarativo:
- descrive cosa fare, e non come farlo (che è invece compito del DBMS): il risultato che si vuole ottenere da un operazione è specificato mediante condizioni sul contenuto dei dati
- si pone a un livello di astrazione superiore rispetto ai linguaggi di programmazione tradizionali (procedurali)
- è basato sull'algebra relazionale (in particolare, per essere eseguita, ogni query SQL viene decomposta dal DBMS in tante "piccole" operazioni dell'algebra relazionale).
Esso è sia DDL che DML: comprende istruzioni per la definizione, l'interrogazione e l'aggiornamento dei dati.
Notazione
Per descrivere la sintassi SQL, viene qui usata la seguente notazione:
- parole chiave del linguaggio: caratteri maiuscoli
- termini variabili: tra
< >
- componenti opzionali: tra
[]
- 0 o più occorrenze:
*
- opzioni mutualmente esclusive: tra
{ }
, separate da |
Tipi di dato
I tipi di dato in SQL si suddividono in:
- tipi predefiniti
- tipi user-defined (ad esempio tipi composti), che sono in parte delle caratteristiche object-relational di SQL)
I principali tipi predefiniti sono: