SQL - Comando ALTER TABLE

El SQL ALTER TABLEEl comando se usa para agregar, eliminar o modificar columnas en una tabla existente. También debe usar el comando ALTER TABLE para agregar y eliminar varias restricciones en una tabla existente.

Sintaxis

La sintaxis básica de un comando ALTER TABLE para agregar un New Column en una tabla existente es la siguiente.

ALTER TABLE table_name ADD column_name datatype;

La sintaxis básica de un comando ALTER TABLE para DROP COLUMN en una tabla existente es la siguiente.

ALTER TABLE table_name DROP COLUMN column_name;

La sintaxis básica de un comando ALTER TABLE para cambiar el DATA TYPE de una columna en una tabla es el siguiente.

ALTER TABLE table_name MODIFY COLUMN column_name datatype;

La sintaxis básica de un comando ALTER TABLE para agregar un NOT NULL La restricción a una columna en una tabla es la siguiente.

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

La sintaxis básica de ALTER TABLE para ADD UNIQUE CONSTRAINT a una mesa es la siguiente.

ALTER TABLE table_name 
ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);

La sintaxis básica de un comando ALTER TABLE para ADD CHECK CONSTRAINT a una mesa es la siguiente.

ALTER TABLE table_name 
ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);

La sintaxis básica de un comando ALTER TABLE para ADD PRIMARY KEY La restricción a una tabla es la siguiente.

ALTER TABLE table_name 
ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);

La sintaxis básica de un comando ALTER TABLE para DROP CONSTRAINT de una tabla es como sigue.

ALTER TABLE table_name 
DROP CONSTRAINT MyUniqueConstraint;

Si está utilizando MySQL, el código es el siguiente:

ALTER TABLE table_name 
DROP INDEX MyUniqueConstraint;

La sintaxis básica de un comando ALTER TABLE para DROP PRIMARY KEY La restricción de una tabla es la siguiente.

ALTER TABLE table_name 
DROP CONSTRAINT MyPrimaryKey;

Si está utilizando MySQL, el código es el siguiente:

ALTER TABLE table_name 
DROP PRIMARY KEY;

Ejemplo

Considere la tabla CLIENTES que tiene los siguientes registros:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

A continuación se muestra el ejemplo para AGREGAR un New Column a una mesa existente -

ALTER TABLE CUSTOMERS ADD SEX char(1);

Ahora, la tabla CUSTOMERS se cambia y lo siguiente se generaría en la instrucción SELECT.

+----+---------+-----+-----------+----------+------+
| ID | NAME    | AGE | ADDRESS   | SALARY   | SEX  |
+----+---------+-----+-----------+----------+------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 | NULL |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 | NULL |
|  3 | kaushik |  23 | Kota      |  2000.00 | NULL |
|  4 | kaushik |  25 | Mumbai    |  6500.00 | NULL |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 | NULL |
|  6 | Komal   |  22 | MP        |  4500.00 | NULL |
|  7 | Muffy   |  24 | Indore    | 10000.00 | NULL |
+----+---------+-----+-----------+----------+------+

A continuación se muestra el ejemplo para DROP sex column de la tabla existente.

ALTER TABLE CUSTOMERS DROP SEX;

Ahora, la tabla CUSTOMERS se cambia y la siguiente sería la salida de la instrucción SELECT.

+----+---------+-----+-----------+----------+
| ID | NAME    | AGE | ADDRESS   | SALARY   |
+----+---------+-----+-----------+----------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 |
|  3 | kaushik |  23 | Kota      |  2000.00 |
|  4 | kaushik |  25 | Mumbai    |  6500.00 |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 |
|  6 | Komal   |  22 | MP        |  4500.00 |
|  7 | Muffy   |  24 | Indore    | 10000.00 |
+----+---------+-----+-----------+----------+