Banner

Pagina 1 2 3 4 5 6 7 8

Aggiungere, Modificare, Rinominare, Eliminare... le colonne di una Tabella

Può accadere di dovere rimaneggiare una o più colonne di una Tabella. In questa situazione entra in gioco l'istruzione ALTER TABLE. Per illustare alcuni dei comandi più comui, senza dovere rischiare di danneggiare il DB Basket, ho creato una Tabella Contatti, che ho provveduto ad eliminare alla fine dei test.

mysql> CREATE TABLE Contatti (
    -> Cognome VARCHAR(20) NOT NULL,
    -> Nome VARCHAR(20) NOT NULL,
    -> Cellulare INT NOT NULL,
    -> PRIMARY KEY(Cellulare));
Query OK, 0 rows affected (0,20 sec)


mysql> DESCRIBE Contatti;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| Cognome   | varchar(20) | NO   |     | NULL    |       |
| Nome      | varchar(20) | NO   |     | NULL    |       |
| Cellulare | int(11)     | NO   | PRI | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0,05 sec)

Aggiungere una colonna ad una Tabella.

mysql> ALTER TABLE Contatti ADD Indirizzo VARCHAR (50) NOT NULL;
Query OK, 0 rows affected (0,16 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| Cognome   | varchar(20) | NO   |     | NULL    |       |
| Nome      | varchar(20) | NO   |     | NULL    |       |
| Cellulare | int(11)     | NO   | PRI | NULL    |       |
| Indirizzo | varchar(50) | NO   |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
4 rows in set (0,00 sec)

Aggiungere un campo ad una Tabella come prima Colonna.

mysql> ALTER TABLE Contatti ADD Codice_Fiscale VARCHAR(20) NOT NULL FIRST;
Query OK, 0 rows affected (0,42 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Cellulare      | int(11)     | NO   | PRI | NULL    |       |
| Indirizzo      | varchar(50) | NO   |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Aggiungere una colonna ad una Tabella dopo una colonna specifica.

mysql> ALTER TABLE Contatti ADD Telefono_Casa INT AFTER Nome;
Query OK, 0 rows affected (0,12 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa  | int(11)     | YES  |     | NULL    |       |
| Cellulare      | int(11)     | NO   | PRI | NULL    |       |
| Indirizzo      | varchar(50) | NO   |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
6 rows in set (0,00 sec)

Eliminare una colonna da una Tabella.

mysql> ALTER TABLE Contatti DROP Indirizzo;
Query OK, 0 rows affected (0,38 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa  | int(11)     | YES  |     | NULL    |       |
| Cellulare      | int(11)     | NO   | PRI | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Eliminare una chiave primaria da una Tabella.

mysql> ALTER TABLE Contatti DROP PRIMARY KEY;
Query OK, 0 rows affected (0,14 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+----------------+-------------+------+-----+---------+-------+
| Field          | Type        | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| Codice_Fiscale | varchar(20) | NO   |     | NULL    |       |
| Cognome        | varchar(20) | NO   |     | NULL    |       |
| Nome           | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa  | int(11)     | YES  |     | NULL    |       |
| Cellulare      | int(11)     | NO   |     | NULL    |       |
+----------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Rinominare una Colonna di una Tabella.

mysql> ALTER TABLE Contatti CHANGE Cellulare Telefono_Cellulare INT NOT NULL;
Query OK, 0 rows affected (0,36 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+--------------------+-------------+------+-----+---------+-------+
| Field              | Type        | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| Codice_Fiscale     | varchar(20) | NO   |     | NULL    |       |
| Cognome            | varchar(20) | NO   |     | NULL    |       |
| Nome               | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa      | int(11)     | YES  |     | NULL    |       |
| Telefono_Cellulare | int(11)     | NO   |     | NULL    |       |
+--------------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Modificare attributi di una Colonna di una Tabella.

mysql> ALTER TABLE Contatti MODIFY Telefono_Casa VARCHAR(15) NOT NULL;
Query OK, 0 rows affected (0,10 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+--------------------+-------------+------+-----+---------+-------+
| Field              | Type        | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| Codice_Fiscale     | varchar(20) | NO   |     | NULL    |       |
| Cognome            | varchar(20) | NO   |     | NULL    |       |
| Nome               | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa      | varchar(15) | NO   |     | NULL    |       |
| Telefono_Cellulare | int(11)     | NO   |     | NULL    |       |
+--------------------+-------------+------+-----+---------+-------+
5 rows in set (0,00 sec)

Impostare come Chiave Primaria una Colonna di una Tabella.

mysql> ALTER TABLE Contatti MODIFY Codice_Fiscale VARCHAR(20) NOT NULL PRIMARY KEY;
Query OK, 0 rows affected (0,42 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> DESCRIBE Contatti;
+--------------------+-------------+------+-----+---------+-------+
| Field              | Type        | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+-------+
| Codice_Fiscale     | varchar(20) | NO   | PRI | NULL    |       |
| Cognome            | varchar(20) | NO   |     | NULL    |       |
| Nome               | varchar(20) | NO   |     | NULL    |       |
| Telefono_Casa      | varchar(15) | NO   |     | NULL    |       |
| Telefono_Cellulare | int(11)     | NO   |     | NULL    |       |
+--------------------+-------------+------+-----+---------+-------+
5 rows in set (0,01 sec)

Manuale Online: ALTER TABLE

Pagina 1 2 3 4 5 6 7 8

Siti Ufficiali Editor Free Guide Online Utility
Microsoft Visual Studio MSDN InnoSetup
Apple XCode Documentazione .Net Cyber Installer
Oracle NetBeans Apple Developer NSIS
Debian Eclipse W3C Diagram Online
Distrowatch Bluefish W3C Validator Junior Icon Editor
Brackets W3Schools Edit Cursors Online
TextWrangler

Sito realizzato da Fiaschi Francesco - Aggiornamento Dicembre 2018

W3C - XHTML 1.1 Validated