Chiunque abbia mai utilizzato un database come Access o un tool come phpMyAdmin sa benissimo che è possibile creare una tabella in maniera visuale in pochi passaggi… ma all’interno della nostra Guida SQL non possiamo esimerci dall’imparare a creare una tabella mediante il comando CREATE TABLE. La sintassi per la creazione di una tabella è la seguente:
CREATE TABLE nome_tabella ( nome_campo1 tipo_dato, nome_campo2 tipo_dato, ... )
Facciamo un esempio e proviamo a creare la tabella autori descritta nelle precedenti lezioni della nostra Guida:
CREATE TABLE autori
(
id INT,
autore VARCHAR(255)
)
La nostra nuova tabella avrà due campi: un campo "id" numerico intero ed un campo "autore" testuale (con una lunghezza massima di 255 caratteri).
Il risultato di questa istruzione sarà la creazione di una tabella vuota con la seguente struttura:
id | autore |
---|---|
Questo è un primo semplice esempio di creazione di tabella. Creiamo adesso un’altra tabella che più avanti, nel corso della guida, relazioneremo alla tabella "autori" appena creata: la tabella "libri" di cui espongo il codice di creazione:
CREATE TABLE libri
(
id INT,
id_autore INT,
titolo VARCHAR(255),
descrizione VARCHAR(255),
prezzo DECIMAL(13,2)
)
La nostra nuova tabella avrà cinque campi: "id" e "id_autore" numerici interi, "titolo" e "descrizione" di tipo testuale (con una lunghezza massima di 255 caratteri) e "prezzo" di tipo numerico decimale con due cifre dopo la virgola (dovrà ospitare i prezzi in euro dei nostri libri).
Il risultato di questa istruzione sarà la creazione di una tabella vuota con la seguente struttura:
id | id_autore | titolo | descrizione | prezzo |
---|---|---|---|---|
Utilizzeremo queste due tabelle nel proseguo della guida per i nostri esempi. Vi invito, pertanto, a crearle all’interno del vostro database di prova in quanto ci torneranno nuovamente utili.
Creare un campo AUTO INCREMENT
Torniamo all’esempio iniziale della lezione per apportarvi una modifica: vediamo come trasformare il campo "id" in un campo di tipo AUTO INCREMENT.
Cos’è un campo auto incrementale?
Un campo numerico si definisce auto incrementale (o AUTO INCREMENT) quando il suo valore viene calcolato automaticamente dal DBMS aggiungendo +1 al valore maggiore già presente in colonna.
Solitamente i campi di questo tipo sono le cosiddette chiavi primarie della tabella. Si tratta, in un certo senso, di "campi speciali" che identificano univocamente un record all’interno o di una tabella: ogni riga inserita nella tabella, infatti, avrà un identificativo numerico univoco attraverso il quale potrà essere identificata.
Come aggiungere un campo AUTO INCREMENT?
Pur essendo una funzionalità standard di SQL, la gestione dei campi auto incrementali cambia a seconda del DBMS.
In Access:
CREATE TABLE autori
(
id AUTOINCREMENT PRIMARY KEY,
autore VARCHAR(255)
)
In MySQL:
CREATE TABLE autori
(
id INT AUTO_INCREMENT,
autore VARCHAR(255),
PRIMARY KEY (id)
)
In SQL Server:
CREATE TABLE autori
(
id INT IDENTITY(1,1) PRIMARY KEY,
autore VARCHAR(255)
)
Altri DBMS, ancora, utilizzano sintassi differenti. A prescidendere dalla sintassi utilizzata, tuttavia, la funzione di un campo auto incrementale non cambia.