Sei sulla pagina 1di 3

Bocchi Cinzia

Ultimo aggiornamento: 22/09/2014


1
Introduzione a SQL

SQL
1
(Structured Query Language) un linguaggio sviluppato per trattare informazioni
memorizzate in strutture dati che seguono il modello relazionale. SQL comprende comandi
per:
- la definizione dei dati;
- il controllo per lintegrit dei dati;
- la lettura, linserimento, la modifica e la cancellazione dei dati;
- il controllo dellaccesso ai dati da parte dellutente.

Il linguaggio SQL, che inizialmente si chiamava SEQUEL, nasce nei laboratori dellIBM
(International Business Machines Corporation) nel 1974, ad opera degli informatici Donald
Chamberlin e Raymond Boyce. Le prime implementazioni su DBMS relazionali si hanno
intorno al 1981.

A partire dal 1986, l'ANSI
2
e poi lISO
3
lo adottano come standard, senza apportare
modifiche sostanziali alla versione originale. Negli anni successivi sono state realizzate
numerose altre versioni
4
. Il processo di standardizzazione mirava alla creazione di un
linguaggio che funzionasse su tutti i DBMS relazionali, ma questo obiettivo non stato
raggiunto pienamente. Infatti, i sistemi commerciali attualmente in uso seguono le
specifiche dello standard ad un livello minimo, definito come Entry Level dallANSI
5
e
spesso offrono funzionalit aggiuntive che non sono specificate nello standard e
dipendono quindi dal sistema usato.

Caratteristiche del linguaggio
SQL segue il paradigma dichiarativo; in altri termini, le istruzioni del linguaggio descrivono
lobiettivo che si intende raggiungere senza, per, indicare come ottenerlo.
I comandi SQL previsti dallo standard sono divisi in quattro gruppi fondamentali:
DDL (Data Definition Language): comandi per la definizione della struttura dei dati e
delle regole di integrit.
DML (Data Manipulation Language): comandi per estrarre, inserire, modificare e
cancellare i dati.
DCL (Data Control Language): comandi per definire i privilegi degli utenti e per
proteggere i dati da accessi non autorizzati.
Query Language: comandi per effettuare interrogazioni sui dati.

SQL pu essere utilizzato in due modi :
- in maniera interattiva;
- in maniera programmatica.
Nel primo caso lutente inserisce i comandi SQL a terminale, ottenendo una risposta
immediata sullo schermo.
Nel secondo caso i comandi SQL vengono incorporati (embed) allinterno di un linguaggio
di programmazione ospitante (host language).



1
La corretta pronuncia nellAlfabeto Fonetico Internazionale (IPA) [| s| kju| l], quella informale [| si| kwl].
2
American National Standards.
3
International Organization for Standardization.
4
http://en.wikipedia.org/wiki/SQL#Standardization
5
Esistono altri due livelli: Intermediate e Full.

Bocchi Cinzia
Ultimo aggiornamento: 22/09/2014
2

Implementazioni
Un elenco delle principali implementazioni di SQL.
RDBMS Produttore/Licenza Tipologia di SW Note
Oracle Oracle Corporation proprietario scritto in C
Oracle Database
XE
Oracle Corporation free orientato a studenti e
sviluppatori
MySQL Oracle Corporation open source e
free ( Licenza
GNU GPL
6
)
http://www.mysql.com/
DB2 IBM proprietario scritto in C e C++
DB2 Express-C IBM free orientato a piccole
aziende e sviluppatori
Informix IBM proprietario sviluppato
originariamente da
Informix Corporation
Access Microsoft proprietario
MSSQL Server Microsoft proprietario usa una variante del
linguaggio SQL standard
chiamata Transact-SQL
(T-SQL)
Firebird SQL Firebird Foundation open source e
free (Licenza
IDPL
7
)
http://www.firebirdsql.org/
PostrgreSQL PostgreSQL
Development Group
open source e
free (Licenza
BSD)
un RDBMS a oggetti
(ORDBMS)
http://www.postgresql.org/


Un caso particolare: SQLite
SQLite una libreria scritta in linguaggio C che implementa un RDBMS (con alcune
limitazioni). Di conseguenza, per essere utilizzato, deve essere incorporato allinterno di
un altro programma. Il suo creatore, D. Richard Hipp, ha rilasciato SQLite nel pubblico
dominio, rendendolo quindi utilizzabile senza alcuna restrizione.
SQLite integrato nella versione 5 di PHP, viene utilizzato, tra gli altri, in Mozilla Firefox, in
Adobe Reader e in Skype. Grazie alle ridotte dimensioni SQLite particolarmente adatto
ai sistemi embedded e ai dispositivi mobili. Il sito ufficiale si trova allurl
http://www.sqlite.org/.



6
GNU General Public License o semplicemente GPL.
7
Initial Developer's Public License


Bocchi Cinzia
Ultimo aggiornamento: 22/09/2014
3
Tipi di dati standard
I tipi di dati standard di SQL possono essere suddivisi in quattro categorie: booleani e
binari, alfanumerici, numerici, date e ore. La seguente tabella elenca i principali tipi di dati
standard fornendo anche la sintassi e una descrizione per ciascuno di essi.

Tipo Sintassi Descrizione
booleano bit Pu assumere solo i valori 0 (false) oppure 1
(true).
binario bit(x) Una sequenza di bit di lunghezza x.
bit varying(x) Una sequenza di bit di lunghezza variabile ma
non superiore a x.
numerico smallint Intero con segno a 16 bit.
integer Intero con segno a 32 bit.
real Floating point a 32 bit.
double precision Floating point a 64 bit.
numeric(p,s) Numero di precisione p e scala s. La precisione p
indica il numero complessivo di cifre mentre s
indica il numero di cifre della parte decimale. Per
esempio numeric(6,2) un numero che ha 4 cifre
nella parte intera e 2 nella parte decimale. E
utilizzato per i valori che rappresentano valute.
decimal(p,s) Come numeric(p,s).
float(p) Floating point di precisione p.
alfanumerico char(n) Stringa di lunghezza n. Se la stringa ha
lunghezza inferiore a n vengono aggiunti spazi
alla sua destra, fino ad arrivare alla lunghezza
desiderata.
varchar(n) Stringa di lunghezza massima n. Se la stringa ha
lunghezza inferiore a n non vengono aggiunti
spazi alla sua destra.
data e ora date Data espressa con anno, mese e giorno.
time Ora espressa in ore, minuti e secondi.
timestamp Specifica lora e la data e pu includere il fuso
orario (time zone).













Quest'opera stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per
leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci
una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.