Curso de Fundamentos de Bases de Datos

ALTER TABLE: cómo modificar tablas en producción

Curso de Fundamentos de Bases de Datos

Contenido del curso

Grabación

PlatziLearn

0:0011:42

Recursos

Resumen

Cuando una base de datos ya está en producción y surge la necesidad de agregar columnas, cambiar tipos de dato o ajustar restricciones, ALTER TABLE es el comando que permite hacer esas modificaciones sin eliminar ni recrear la tabla. Dominar su uso es fundamental para cualquier persona que trabaje con bases de datos relacionales, porque un cambio mal ejecutado puede ser irreversible.

¿Cómo agregar nuevas columnas con ALTER TABLE?

El primer uso práctico de ALTER TABLE es incorporar columnas que no se definieron al momento de crear la tabla. La sintaxis sigue un patrón claro: se indica la tabla a modificar y luego se utiliza ADD COLUMN seguido del nombre y tipo de dato de la nueva columna [01:27].

Por ejemplo, si se creó una tabla llamada empleados_demo con solo tres campos (empleado ID, nombre y cargo) y después se necesita un correo electrónico, basta con ejecutar:

sql ALTER TABLE empleados_demo ADD COLUMN email TEXT;

Este mismo patrón se repite para cada columna faltante. Se pueden agregar campos con restricciones directamente en la sentencia, como NOT NULL y DEFAULT [02:15]:

sql ALTER TABLE empleados_demo ADD COLUMN fecha_ingreso DATE NOT NULL DEFAULT CURRENT_DATE;

También es posible añadir columnas de tipo booleano con valores por defecto [02:50]:

sql ALTER TABLE empleados_demo ADD COLUMN activo BOOLEAN NOT NULL DEFAULT TRUE;

Para verificar que los cambios se aplicaron correctamente, se consulta la estructura de la tabla en el esquema information_schema, revisando el nombre de columna, tipo de dato y valor por defecto [03:15].

¿Qué permite cambiar ALTER COLUMN en columnas existentes?

Además de agregar elementos, ALTER TABLE permite modificar propiedades de columnas que ya existen. Aquí se utiliza ALTER COLUMN en lugar de ADD.

¿Cómo cambiar el tipo de dato de una columna?

Si una columna se definió como TEXT pero debería ser VARCHAR(100), el cambio se realiza con la cláusula TYPE [04:28]:

sql ALTER TABLE empleados_demo ALTER COLUMN email TYPE VARCHAR(100);

VARCHAR significa character varying o carácter variable, y a diferencia de TEXT, permite establecer un límite máximo de caracteres. Este ajuste es común cuando se necesita optimizar el almacenamiento o validar longitudes máximas.

¿Cómo modificar o eliminar restricciones de una columna?

Las restricciones como NOT NULL también se pueden agregar o quitar. Para eliminar la restricción de valor no nulo en una columna se usa DROP NOT NULL [05:42]:

sql ALTER TABLE empleados_demo ALTER COLUMN email DROP NOT NULL;

Para agregar una restricción de tipo UNIQUE a nivel de tabla, se utiliza ADD CONSTRAINT con un nombre identificador [06:40]:

sql ALTER TABLE empleados_demo ADD CONSTRAINT email_unico UNIQUE(email);

Y si después se necesita eliminar esa restricción, se emplea DROP CONSTRAINT seguido del nombre asignado [07:20]:

sql ALTER TABLE empleados_demo DROP CONSTRAINT email_unico;

¿Cómo renombrar y eliminar elementos con ALTER TABLE?

El comando RENAME COLUMN permite cambiar el nombre de una columna sin afectar los datos almacenados [06:05]:

sql ALTER TABLE empleados_demo RENAME COLUMN cargo TO puesto;

De la misma forma, se puede renombrar la tabla completa con RENAME TO [08:30]:

sql ALTER TABLE empleados_demo RENAME TO empleados_v2;

¿Por qué DROP COLUMN es irreversible?

Eliminar una columna con DROP COLUMN borra tanto la definición como todos los datos que contenía. No existe un "Control Z" en SQL para revertir esta operación [07:55]:

sql ALTER TABLE empleados_demo DROP COLUMN activo;

  • ADD COLUMN: agrega campos nuevos a la tabla.
  • ALTER COLUMN: modifica tipo de dato o restricciones.
  • RENAME COLUMN / RENAME TO: cambia nombres de columnas o tablas.
  • DROP COLUMN / DROP CONSTRAINT: elimina elementos de forma permanente.

Como desafío práctico, ejecuta tres operaciones sobre una tabla clientes: agrega una columna fecha_nacimiento de tipo DATE, renómbrala a nacimiento y finalmente elimínala con DROP COLUMN. Verifica el resultado y comparte tu pantallazo en los comentarios.

ALTER TABLE: cómo modificar tablas en producción