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 l’integrità dei dati;
- la lettura, l’inserimento, la modifica e la cancellazione dei dati;
- il controllo dell’accesso ai dati da parte dell’utente.

Il linguaggio SQL, che inizialmente si chiamava SEQUEL, nasce nei laboratori dell’IBM
(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 l’ISO
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 dall’ANSI
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
l’obiettivo 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 l’utente inserisce i comandi SQL a terminale, ottenendo una risposta
immediata sullo schermo.
Nel secondo caso i comandi SQL vengono incorporati (embed) all’interno di un linguaggio
di programmazione ospitante (host language).



1
La corretta pronuncia nell’Alfabeto Fonetico Internazionale (IPA) è [| ɛs| kju| ɛl], quella informale [| si| kwəl].
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 all’interno 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 all’url
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 l’ora 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.

Sign up to vote on this title
UsefulNot useful