SQL
(Structured Query Language)
Alice Pavarani
Caratteristiche generali del linguaggio
 Linguaggio non procedurale (dichiarativo)
 Autoesplicativo e “intuitivo”
 Linguaggio standardizzato per la gestione di database
relazionali
 Creare e modificare lo schema
 Gestire la memorizzazione in sistemi basati sul modello
relazionale
 Manipolare i dati (inserire, modificare, cancellare)
 Controllare i permessi di accesso ai dati
 Interrogare ed elaborare i dati
V B - Sistemi Informativi Aziendali
Un po’ di storia…
 IBM (1974) nasce SEQUEL, linguaggio usato come strumento
per lavorare con DB relazionali
 IBM (1981) iniziò a vendere prodotti relazionali
 Si diffuse rapidamente anche tra altre società
 IBM (1983) rilascia DB2, il DBMS ufficiale di IBM
 SQL diviene lo standard industriale per i database basati sul
modello relazionale
 1986 adottato da ANSI (American National Standards Institute)
 1987 adottato da ISO (Internetional Standards Organization)
 Versioni di SQL:
 SQL-Base (SQL/86, SQL/89)
 SQL2 (SQL/92)
 SQL3 (SQL/99 – SQL/2008)
 Obiettivo della standardizzazione: creare un linguaggio che
funzionasse su tutti i DBMS relazionali
V B - Sistemi Informativi Aziendali
SQL/86
SQL in Access
 Modalità QBE (Query by Example)
Per imparare il linguaggio è molto utile passare
dalla modalità QBE alla visualizzazione del codice SQL
Il linguaggio SQL è di grande importanza anche se si sviluppano database
direttamente con Access:
 La sola modalità QBE è limitante: ci sono interrogazioni che non si
riescono a realizzare
 Le interrogazioni annidate si realizzano inserendo nella modalità QBE
dei comandi SQL tra i criteri
 La creazione di maschere con caselle combinate necessita di
un’interrogazione SQL
 Spesso è più facile modificare e controllare il codice SQL piuttosto che
la versione QBE originale
V B - Sistemi Informativi Aziendali
Linguaggi “dentro” SQL
 DDL (Data Definition Language, linguaggio di definizione dei dati)
permette di descrivere la struttura delle tabelle
 DMCL (Device Media Control Language, linguaggio per il controllo dei
supporti di memorizzazione)
consente di far corrispondere il modello logico (DDL) con il supporto
fisico su cui conservare i dati
 DML (Data Manipulation Language, linguaggio per la manipolazione
dei dati)
permette di eseguire operazioni di manipolazione sui dati, quali:
inserimento, modifica e cancellazione
 DCL (Data Control Language, linguaggio di controllo dei dati)
consente di definire i limiti sui dati (permessi di accesso, vincoli di
integrità, ecc…)
 QL (Query Language, linguaggio di interrogazione)
utilizzato per interrogare ed elaborare la base di dati, al fine di
estrapolare dati in risposta alle richieste dell’utente
V B - Sistemi Informativi Aziendali
Identificatori in SQL
Identificatori (nomi di tabelle ed attributi)
 Sequenze di caratteri, iniziano con una lettera
 Possono contenere il carattere speciale “_”
 Lunghezza massima di 18 caratteri
Attributi
 Notazione standard:
NomeTabella.NomeAttributo
NOTA: Il nome della tabella può essere omesso se non ci sono ambiguità
V B - Sistemi Informativi Aziendali
Il delimitatore per le stringhe (e spesso
anche per le date) è ‘ (apice singolo)
Tipi di dato standard
Per i dati numerici la precisione
p indica il numero massimo di
cifre che il numero può
contenere (escluso il punto
decimale e il segno)
Tipo di dato
Descrizione
Valori
BOOLEAN
Valore logico
True, False
CHARACTER(n)
Stringa di lunghezza n
default n =1
CHAR(n)
VARCHAR(n)
Stringa variabile di lung n
n obbligatorio
non c’è blank padding
DATE
Data
MM/GG/AA
TIME
Ora
HH:MM
INTEGER(p)
Numero intero
p da 1 a 45
SMALLINT
Numero intero (p = 5)
da -32768 a 32767
INTEGER
Numero intero (p = 10)
da -2^31 a 2^31-1
DECIMAL(p,s)
Numero decimale
con s cifre decimali
p da 1 a 45
s da 0 a p
NUMERIC(p,s)
DEC(p,s)
REAL
Numero reale
Dipende
Singola precisione
DOUBLE
Numero reale
Dipende
Doppia precisione
Dipende
Precisione p
FLOAT(p)
NumeroAziendali
reale
V B - Sistemi Informativi
NOTE
INT(p)
Operatori in SQL
Operatori aritmetici
+
*
/
Operatori di confronto
=
!= o <>
>
>=
<
<=
Operatori logici
AND OR NOT
V B - Sistemi Informativi Aziendali
Valore NULL
Il valore NULL rappresenta un valore non disponibile o non definito
 NULL è compatibile con tutti i tipi di dato
 NULL non è mai uguale a nessun altro valore:
 È diverso dal valore 0 per i dati numerici
 È diverso dalla stringa vuota (‘’) per i dati alfanumerici
 Tutti i confronti che coinvolgono attributi con valore NULL
vengono considerati sconosciuti
 NULL non è uguale, maggiore o minore di nessun altro valore
 Tutte le operazioni aritmetiche che coinvolgono il valore NULL
restituiscono sempre il valore NULL
 Negli ordinamenti compare, di norma, all’inizio delle sequenze
crescenti e alla fine delle sequenze decrescenti
 Il linguaggio SQL può solo controllare la presenza o l’assenza di
NULL in un campo (IS NULL / IS NOT NULL)
V B - Sistemi Informativi Aziendali
Valore NULL (Nota Bene)
Se A vale NULL :
 A=0
è falsa
 A>0
è falsa
 A<0
è falsa
 A != 0
è vera
 A = NULL è falsa
 A IS NULL è vera
V B - Sistemi Informativi Aziendali
Esempio di riferimento
Nelle prossime lezioni sul linguaggio SQL faremo
riferimento al seguente esempio:
Un’azienda è articolata in un certo numero di dipartimenti.
I dipendenti sono assegnati ai diversi dipartimenti che
hanno a capo un manager responsabile della gestione. Un
dipendente afferisce ad un solo dipartimento e non ne è
necessariamente responsabile. Un dipendente può essere
manager di più dipartimenti.
Di ciascun impiegato si vogliono conoscere: codice
identificativo, nome, cognome, residenza e stipendio.
Dei dipartimenti occorre conoscere: il codice, il nome del
dipartimento e il suo indirizzo.
V B - Sistemi Informativi Aziendali
Esempio di riferimento
Progettazione Concettuale (modello ER)
IDImpiegato
Nome
Cognome
Residenza
(1 , 1)
LAVORA
(0 , N)
Codice
Descrizione
IMPIEGATO
DIPARTIMENTO
Sede
Stipendio
(0 , N)
E’
RESPONSABILE
(1 , 1)
Progettazione Logica (modello relazionale)
Impiegato (IDImpiegato, Nome, Cognome, Residenza, Stipendio, Dipartimento)
Dipartimento (Codice, Descrizione, Sede, Manager)
V B - Sistemi Informativi Aziendali
Esempio di riferimento
V B - Sistemi Informativi Aziendali