El comando SQL ALTER TABLE se utiliza para añadir, eliminar o modificar columnas en una tabla existente. También debe utilizar el comando ALTER TABLE para añadir y eliminar varias restricciones en una tabla existente.
Sintaxis
La sintaxis básica de un comando ALTER TABLE para añadir una Nueva Columna 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 la siguiente.
ALTER TABLE table_name MODIFY COLUMN column_name datatype;
La sintaxis básica de un comando ALTER TABLE para añadir una restricción NOT NULL a una columna de una tabla es la siguiente.
ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
La sintaxis básica de ALTER TABLE para AÑADIR CONSTRAINT UNIQUE a una tabla 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 tabla 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 constraint 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 la siguiente.
ALTER TABLE table_name DROP CONSTRAINT MyUniqueConstraint;
Si estás usando 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 constraint de una tabla es la siguiente.
ALTER TABLE table_name DROP CONSTRAINT MyPrimaryKey;
Si estás usando MySQL, el código es el siguiente –
ALTER TABLE table_name DROP PRIMARY KEY;
Ejemplo
Considera 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 AÑADIR una Nueva Columna a una tabla existente –
ALTER TABLE CUSTOMERS ADD SEX char(1);
Ahora, la tabla CUSTOMERS se cambia y lo siguiente sería la salida de la sentencia 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 |+----+---------+-----+-----------+----------+------+
El siguiente es el ejemplo para ELIMINAR la columna sexo de la tabla existente.
ALTER TABLE CUSTOMERS DROP SEX;
Ahora, la tabla CUSTOMERS se cambia y lo siguiente sería la salida de la sentencia 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 |+----+---------+-----+-----------+----------+