back to top

Creare una tabella MySQL

Una volta creato, il nostro database è (ovviamente) vuoto nel senso che al suo interno non è presente alcuna tabella. Per averne la conferma – dopo aver selezionato il nuovo DB creato alla lezione precedente – digitate:

SHOW TABLES;

Il risultato dovrebbe essere:

Empty set (0.00 sec)

Creiamo la nostra prima tabella con MySQL

Vediamo quindi come creare la nostra prima tabella all’interno del database "agenda".

Funzione di questa nostra tabella – che chiameremo "amici" – sarà quella di archiviare una serie di informazioni personali (nome, cognome, telefono) relative, appunto, ai nostri amici. Per raggiungere il nostro scopo utilizzeremo il comando CREATE TABLE seguito dal nome della tabella e dalla definizione della sua struttura:

CREATE TABLE amici (
  nome VARCHAR(20),
  cognome VARCHAR(20),
  telefono INT(10)
);

Come potete vedere la struttura della nostra nuova tabella è stata esplicitata all’interno delle parentesi tonde che seguono al nome.

All’interno di queste parentesi sono elencati i diversi campi che comporranno la tabella per ognuno dei quali è specificato il tipo di dato e la dimensione.

In questo esempio abbiamo 3 campi: i primi due sono di tipo stringa (VARCHAR) ed hanno lunghezza 20, mentre il terzo è di tipo numerico interno (INT) con lunghezza 10.

La nostra tabella verrà creata con lo storage engine di default del server in quanto, nel nostro esempio, abbiamo omesso di specificarne uno in modo esplicito.

Tipi di tabelle in MySQL

In MySQL esistono due tipi di tabelle che corrispondono a due diversi storage engine (motori di archiviazione dei dati). Questi sono MyISAM (Engine di default di MySQL fino alla versione 5.5.5 esclusa) e INNODB (engine di default a partire dalla versione 5.5.5).

La principale differenza tra i due motori consiste nel fatto che INNODB, a differenza di MyISAM, è un engine di tipo transazionale (supporta cioè la transazioni) ed ha la capacità di gestire commit, rollback e crash recovery. INNODB, in sostanza, è un motore più moderno e stabile rispetto a MyISAM, tuttavia alcune caratteristiche di quest’ultimo lo rendono ancora appetibile come, ad esempio, la possibilità di creare indici fulltext per l’esecuzione di ricerche veloci all’interno di grandi volumi di dati testuali.

Ovviamente, a prescindere dalla versione di MySQL utilizzata, è possibile cambiare l’engine di default del server agendo sul valore di default-storage-engine all’interno di my.cnf.

Se in fase di creazione di una nuova tabella non viene esplicitamente specificato il tipo di engine, questo sarà corrispondente a quello di default del server. Per specificare l’engine da utilizzare aggiungeremo ENGINE = … come nell’esempio:

CREATE TABLE amici (
  ...
) ENGINE = INNODB;

Per ulteriori informazioni circa le differenze tra MyISAM e INNODB rimando a questo breve articolo presente su questo sito.

Specificare charset e colation per la nuova tabella

Anche in fase di creazione tabelle, come per la creazione di un nuovo database, è possibile specificare charset e collation in questo modo:

CREATE TABLE amici (
  ...
)
CHARACTER SET latin1
COLLATE latin1_swedish_ci;

Verificare se la tabella è stata creata correttamente

Se ora vogliamo verificare che effettivamente la nostra tabella sia stata creata sarà sufficiente digitare il comando:

SHOW TABLES;

Il risultato dovrebbe essere:

La console di MySQL mostra tutti i database

Esattamente come già visto nella lezione precedente, l’esecuzione del medesimo comando di creazione tabella restituirebbe un errore in quanto ora la tabella esiste già. Anche in questo caso è sufficiente aggiungere IF NOT EXISTS all’interno della query per evitare ogni problema in tal senso.

CREATE TABLE IF NOT EXISTS amici (
  ...
);

Facciamo ora un’altra verifica. Assicuriamoci che la struttura della tabella sia corretta:

DESCRIBE amici;

Il risultato sarà un resoconto come questo:

La console di MySQL mostra la struttura della tabella amici

Come vedete, si tratta di un riepilogo dei campi della tabella e delle loro caratteristiche.

Cancellare una tabella dal database MySQL

Per terminare questa lezione vediamo l’operazione inversa alla creazione di tabella, la loro eliminazione. Se, ad esempio, volessimo eliminare la tabella appena creata utilizzeremo il comando DROP TABLE. Vediamo un esempio:

DROP TABLE amici;

Per verificare l’avvenuta cancellazione digitate nuovamente SHOW TABLES.

Valgono, infine, per il comando DROP TABLE le stesse considerazioni viste per il comando DROP DATABASE: in MySQL non esistono modi di recuperare dati cancellati, quindi operate con cautela.

Pubblicità
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

In questa guida...