Modificare una tabella
SHOW COLUMS FROM clienti
+---------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(40) | NO | | NULL | |
| cognome | varchar(40) | NO | | NULL | |
| telefono | varchar(20) | NO | | NULL | |
| data_apertura_conto | date | NO | | NULL | |
| tipo_conto | varchar(20) | NO | | NULL | |
+---------------------+-------------+------+-----+---------+----------------+
Eliminare una colonna
Supponiamo di voler eliminare la colonna telefono dalla tabella clienti. La query sarà la seguente:
ALTER TABLE clienti DROP telefono;
+---------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(40) | NO | | NULL | |
| cognome | varchar(40) | NO | | NULL | |
| data_apertura_conto | date | NO | | NULL | |
| tipo_conto | varchar(20) | NO | | NULL | |
+---------------------+-------------+------+-----+---------+----------------+
Da come è possibile vedere il campo telefono è stato eliminato.
Aggiungere un campo
Se volessimo rimettere il campo telefono immediatamente dopo il campo cognome potremmo usare questa query:
ALTER TABLE clienti ADD telefono varchar(20) NOT NULL AFTER cognome;
+---------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(40) | NO | | NULL | |
| cognome | varchar(40) | NO | | NULL | |
| telefono | varchar(20) | NO | | NULL | |
| data_apertura_conto | date | NO | | NULL | |
| tipo_conto | varchar(20) | NO | | NULL | |
+---------------------+-------------+------+-----+---------+----------------+
Il campo telefono è stato nuovamente reinserito
Rinominare il nome di un campo
Per rinominare il noeme di un campo, ad esempio modificare il campo telefono in numero_telefono è possibile utilizzare la query:ALTER TABLE clienti CHANGE telefono numero_telefono VARCHAR(25);
+---------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(40) | NO | | NULL | |
| cognome | varchar(40) | NO | | NULL | |
| numero_telefono | varchar(25) | YES | | NULL | |
| data_apertura_conto | date | NO | | NULL | |
| tipo_conto | varchar(20) | NO | | NULL | |
+---------------------+-------------+------+-----+---------+----------------+
Da come è possibile vedere il campo telefono è stato rinominato in numero_telefono, è stato tolto l'attributo not_null ed il valore di varchar è passato da 20 a 25. Per ripristinare la query è la seguente:
ALTER TABLE clienti CHANGE numero_telefono telefono VARCHAR(20) NOT NULL;
+---------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+-------------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| nome | varchar(40) | NO | | NULL | |
| cognome | varchar(40) | NO | | NULL | |
| telefono | varchar(20) | NO | | NULL | |
| data_apertura_conto | date | NO | | NULL | |
| tipo_conto | varchar(20) | NO | | NULL | |
+---------------------+-------------+------+-----+---------+----------------+
Successivo: Inserimento di dati: INSERT INTO
Precedente: Creazione ed eliminazione di una tabaella