Breve corso di SQL - Cenni introduttivi e Basi di Dati
Questo breve corso ha come scopo la descrizione dei principali comandi del linguaggio
SQL, ed è destinato ad un pubblico che non ha alcuna conoscenza di questo
linguaggio e delle relative formulazioni teoriche (algebra relazionale). Un
prerequisito è la conoscenza degli operatori logici. La spiegazione sarà il
più possibile semplice e schematica, a costo di inesattezze e di eccessive
riduzioni, quindi chiunque abbia una buona conoscenza del linguaggio SQL
voglia scusare l'approccio non formale.
L'autore declina ogni
responsabilità per errori od inesattezze contenute in queste pagine e avverte
che nessun danno gli può essere addebitato in seguito all'uso delle
informazioni qui contenute, siano essi esempi, descrizioni di comandi o anche
solo suggerimenti.
Queste pagine sono state scritte a titolo gratuito per
il Sito Comune dei Programmatori Visual Basic (http://www.murialdo.it/it_lang_vb)
al solo fine di dare una breve introduzione al linguaggio SQL, sono frutto di
esperienza personale, maturata nel campo degli RDBMS e OODBMS.
La copia e
la distribuzione è autorizzata solo se effettuata a titolo gratuito (licenza
freeware), si richiede in ogni caso comunicazione al sito comune per la
pubblicazione o l'utilizzo non personale.
Breve Storia
La
storia dei DBMS (Data Base Management Systems = Sistemi di Gestione
delle Basi di Dati) si sviluppa negli anni '60 e '70, in seguito al crescente
fabbisogno di gestire e manipolare grandi quantità di dati.
Subito, in
seguito all'affermarsi di una teoria con basi formali (algebra relazionale)
nascono i database relazionali (Codd) chiamati RDBMS (Relational Data Base
Management Systems = Sistemi di Gestione delle Basi di Dati Relazionali) e
di conseguenza il linguaggio SQL (Structured Query Language =
Linguaggio di Interrogazione Strutturato - alcuni traducono "linguaggio per
interrogazioni strutturate", ma la versione più corretta sembra essere la
prima) nasce e si sviluppa con loro.
Ormai il linguaggio SQL è definito da
norme ANSI che lo rendono uno standard internazionale, anche se le varie
implementazioni differiscono leggermente fra loro.
Le strutture che contengono
i dati
I tipi di dati fondamentali che useremo nella seguente
trattazione sono:
Numeri (Interi e non), Stringhe (di
lunghezza fissa) e Date (nei vari formati data/ora).
Ogni
informazione contenuta in un Data Base sarà di uno di questi tipi.
I Campi
Chiamiamo
Campo la coppia (Nome, Tipo), in cui Nome è il nome del Campo e
Tipo è il tipo di Dati associati al Campo.
Es: La coppia (Età,
Intero) è un campo che servirà per contenere le informazioni relative
all'età di un individuo, mentre la coppia (Data_di_Nascita, Data) è
un campo che servirà per contenere la data di nascita di un individuo.
Le Tabelle
Nei DBMS
Relazionali le strutture che contengono i dati sono chiamate tabelle.
La
struttura di una tabella si può vedere come la successione (ordinata) di vari
campi (la definizione formale dice che una tabella è un sottoinsieme del
prodotto cartesiano dei campi della tabella stessa).
Es: La successione
(Cognome, Testo), (Età, Intero), (Data_di_nascita,
Data) è una struttura di tabella che potremmo chiamare Anagrafica.
I dati contenuti in una
tabella dovranno ovviamente essere del tipo corrispondente al campo che li
contiene.
Es: La tabella seguente è
corretta (vd. esempio precedente):
| Cognome |
Età |
Data_di_nascita |
| Rossi |
20 |
01/05/1979 |
| Verdi |
10 |
12/12/1989 |
Mentre la seguente no:
| Cognome |
Età |
Data_di_nascita |
| Rossi |
GINO |
4 |
| Verdi |
10/1/1987 |
CIAO |
I Record
Per
semplicità chiamiamo Record le righe di una tabella.
Struttura del linguaggio
SQL
Il linguaggio SQL (come tutti i linguaggi per RDBMS) si divide
principalmente in due sottolinguaggi:
1. DDL: Data Definition
Language = Linguaggio di Definizione dei Dati
2. DML: Data
Manipulation Language = Linguaggio di Manipolazione dei Dati
Il primo si occupa (cioè è
formato da quei comandi che si occupano...) di creare e manipolare le
strutture che contengono i dati mentre il secondo si occupa di ricercare,
estrarre, ordinare, aggiungere e modificare i dati.