vuoi
o PayPal
tutte le volte che vuoi
YEAR, MONTH, DAY, HOUR, MINUTE, SECOND), il formato è INTERVAL seguito
da una stringa contenente uno o più qualificatori, es. INTERVAL ‘3’ YEAR,
INTERVAL ’30 22:36’ DAY TO MINUTE
Boolean: utilizzati per valori booleani e comprendono true, false e unknown (introdotti
per la gestione dei confronti con i valori nulli)
Character Large Object (CLOB): per rappresentare sequenze elevate di caratteri (come
un testo)
Binary Large Object (BLOB): pe rappresentare sequenza elevate di bit (immagini)
Creazione di Relazioni (creare una tabella)
La sintassi base è:
CREATE TABLE <nome relazione> (<specifica colonna> [,<specifica colonna>]*);
dove: <nome relazione> è il nome della tabella che viene creata (e quindi della nuova
relazione)
<specifica colonna> è una specifica colonna della tabella il cui formato è
<nome colonna> <dominio> [DEFAULT <valore default>]
<nome colonna> è il nome di quella specifica colonna (diverso dalle altre
colonne della tabella)
<dominio> è ciò che può contenere, quindi uno tra i tipi di dato SQL
<valore default> è il valore scelto che assumeranno le tuple se non avranno un
valore specifico per questa colonna
Vincoli di Integrità nella creazione di relazioni
Durante la creazione delle relazioni (tabelle) è possibile specificare diversi tipi di 58vincoli:
Obbligatorietà di colonne (NOT NULL)
Chiavi (UNIQUE e PRIMARY KEY)
Chiavi esterne (FOREIGN KEY)
Vincoli CHECK (su colonna o su tupla)
L’obbligatorietà di colonne significa che nella colonna non è possibile assumere valori nulli, è quindi
sufficiente aggiungere il vincolo NOT NULL durante la creazione della colonna. (es. CREATE TABLE
Video (titolo VARCHAR (30) NOT NULL))
La chiave UNIQUE garantisce che non esistano 2 tuple con gli stessi valori non nulli per gli attributi
(consentono l’uso di colonne con valori nulli), la PRIMARY KEY impone che per ogni tupla della
tabella, i valori degli attributi specificati come chiave primaria siano non nulli e diversi da quelli di
ogni altra tupla della tabella (nella tabella è possibile specificare più chiavi unique ma una sola
primary key). In entrambi i casi per specificare che la chiave è formata da una singola colonna è
sufficiente far seguire alla specifica della colonna UNIQUE o PRIMARY KEY, mentre se la chiave è
composta da più colonne bisogna prima specificare tutte le colonne della chiave e al termine della
tabella si aggiunge PRIMARY KEY o UNIQUE seguite da (<lista delle colonne che formano la chiave>)
(è comunque possibile usare questa seconda sintassi anche per le chiavi formate da singole colonne)
n.b. Dato che in SQL è possibile avere tuple duplicate (cloni dell’originale, mentre nel modello
relazionale questo non era possibile) per impedirlo è possibile definire chiavi costituite da tutte le
colonne di una relazione (tutti gli attributi della tupla formano la chiave primaria)
Le chiavi esterne si specificano tramite FOREIGN KEY seguito dalla lista dei nomi degli attributi delle
colonne che la compongono, è necessario specificare inoltre la tabella per la quale questa relazione è
chiave esterna e le azioni da eseguire nel caso di eliminazione, modifica o aggiunta di elementi nella
tabella. La sintassi corretta è la seguente:
FOREIGN KEY (<lista nomi colonne>)
REFERENCES <nome relazione a cui si riferisce>
[ON DELETE {NO ACTION|CASCADE|SET NULL|SET DEFAULT}]
[ON UPDATE {NO ACTION|CASCADE|SET NULL|SET DEFAULT}]
On Delete:
NO ACTION: la cancellazione di una tupla avviene solo se non esiste nessuna tupla
corrispondente nella tabella referente (cioè nella tabella in cui questa tabella è chiave
esterna)
CASCADE: la cancellazione di una tupla implica la cancellazione di tutte le tuple della
tabella referente che fanno riferimento alla tupla da cancellare
SET NULL: la cancellazione di una tupla implica che a tutte le tuple della tabella
referente, che fanno riferimento alla tupla cancellata, il valore della chiave esterna
viene posto a NULL (se ammesso)
SET DEFAULT: la cancellazione di una tupla implica che a tutte le tuple della tabella
referente, che fanno riferimento alla tupla cancellata, il valore della chiave esterna
viene posto uguale al valore di default specificato per le colonne che la costituiscono
(l’opzione di default è NO ACTION).
On Update, le opzioni sono identiche alla precedenti fatta eccezione per CASCADE, che ha
l’effetto di assegnare alla chiave esterna il nuovo valore di chiave della tupla riferita.