Creazione di tabelle. Seconda parte (CREATE TABLE)

Iniziamo ad analizzare una nuova istruzione, la CREATE TABLE.

L’istruzione sql che permette di creare una tabella e’ la CREATE TABLE.

In fase di creazione vengono definite le colonne che la compongono, eventuali constraint o vincoli (ma che possono essere definiti anche successivamente, con un’altra istruzione), informazioni varie sulla memorizzazione dei dati sul file system (se non specificati vengono utilizzati quelli di default) piu’ tutta un’altra serie di informazioni che vedremo piu’ avanti (cluster,partizioni ecc.).

Come primo esempio proviamo a creare la tabella impiegati, utilizzata nell’introduzione all’istruzione select:

CREATE TABLE impiegati(
matricola VARCHAR2(4) NOT NULL,
nome VARCHAR2(20) NOT NULL,
cognome VARCHAR2(20) NOT NULL,
superiore VARCHAR2(4),
data_ass DATE,
salario NUMBER(9),
sede NUMBER);

In questo modo abbiamo creato una tabella di nome impiegati, con 7 colonne e i cui unici constraint sono i NULL/NOT NULL (da notare che non e’ necessario specificare il null).

Ricreiamola specificando qualche vincolo in piu’, per fare questo, dato che non possono esistere due tabelle con lo stesso nome, dobbiamo prima eliminare la tabella creata, per farlo si utilizza l’istruzione DROP TABLE:

DROP TABLE impiegati;

CREATE TABLE impiegati(
matricola VARCHAR2(4) NOT NULL PRIMARY KEY,
nome VARCHAR2(20) NOT NULL,
cognome VARCHAR2(20) NOT NULL,
superiore VARCHAR2(4) REFERENCES impiegati(matricola),
data_ass DATE,
salario NUMBER(9),
sede NUMBER NOT NULL REFERENCES sedi(sede));

Sono stati definiti tre constraint, una primary key sul campo id, una foreign key sul campo sede che referenzia la colonna sede della tabella sedi e una foreign key sul campo superiore che referenzia un campo che si trova sulla tabella stessa.

Per quanto riguarda la primary key c’e’ da dire che per definizione questo tipo di vincolo impone che il campo (o i campi) che lo compongono non siano nulli e quindi il NOT NULL e’ superfluo.

Le due foreign key invece possono anche essere nulle, questo torna comodo in particolare nel caso della colonna superiore, visto che e’ possibile che esista almeno una persona senza un capo e quindi in questo caso il valore del campo superiore sara’ null. Nel caso della sede invece, se vogliamo evitare di avere dipendenti che non sono associati ad alcuna sede, lo si deve specificare immettendo un not null.
Nel prossimo intervento vedremo come definire un constraint su piu’ colonne (ad esempio uno unique su nome e cognome) e come dare un nome ad ogni constraint.

PUBBLICITÀ
PUBBLICITÀ
Le vostre opinioni
Pubblicato il 11 marzo 2001 in: SQL

Ultimi interventi

Vedi tutti

Le categorie della guida

Inserisci per primo un commento a questo articolo.

PUBBLICITÀ
PUBBLICITÀ
L'email è richiesta ma non verrà mostrata ai visitatori.
Commenta questo articolo

Registrati per riservare il tuo nickname preferito e per caricare il tuo avatar. Se sei già registrato, effettua il login per usare il tuo nickname.

Si No

Anteprima del commento