Cómo usar ALTER TABLE DROP COLUMN en SQL con ejemplos prácticos

Imagen con código SQL que muestra ALTER TABLE empleados ADD COLUMN fecha_contratacion DATE; y ALTER TABLE empleados MODIFY COLUMN salario DECIMAL(12,2);, destacando la diferencia entre agregar y modificar columnas en una tabla.

Cuando empezamos a trabajar con bases de datos, lo normal es crear tablas con ciertas columnas que creemos necesarias en ese momento. Sin embargo, con el paso del tiempo, los requerimientos cambian: algunos campos dejan de ser útiles, otros se vuelven redundantes o simplemente fueron un error de diseño inicial.

En esos casos, eliminar una columna puede ser la solución. Para hacerlo en SQL contamos con el comando:

ALTER TABLE ... DROP COLUMN

En este artículo vas a aprender de manera sencilla y práctica qué hace DROP COLUMN, cómo se usa en diferentes motores de base de datos, ejemplos reales con tablas, advertencias, compatibilidad y buenas prácticas.

1) ¿Qué es ALTER TABLE DROP COLUMN?

👉 ALTER TABLE es un comando de SQL que permite modificar la estructura de una tabla existente sin necesidad de eliminarla ni volver a crearla desde cero.

Con la cláusula DROP COLUMN podemos eliminar columnas de una tabla de forma definitiva.

Esto significa que si borramos una columna, todos los datos almacenados en esa columna también se eliminan.

2) Sintaxis básica de DROP COLUMN

La forma general es la siguiente:

ALTER TABLE nombre_tabla
DROP COLUMN nombre_columna;
  • nombre_tabla: es la tabla que queremos modificar.
  • DROP COLUMN: indica que vamos a eliminar una columna.
  • nombre_columna: es el nombre de la columna que queremos borrar.

3) Ejemplo práctico paso a paso

Supongamos que tenemos una tabla de clientes:

CREATE TABLE clientes (
  id INT PRIMARY KEY,
  nombre VARCHAR(100) NOT NULL,
  email VARCHAR(255),
  telefono VARCHAR(30),
  pais VARCHAR(50)
);

La tabla se ve así:

idnombreemailtelefonopais
1Anaana@mail.com111-222España
2Brunobruno@mail.com333-444Argentina

Ahora decidimos que ya no necesitamos la columna telefono. Para borrarla usamos:

ALTER TABLE clientes
DROP COLUMN telefono;

La nueva tabla queda así:

idnombreemailpais
1Anaana@mail.comEspaña
2Brunobruno@mail.comArgentina

👉 Como ves, la columna telefono desapareció junto con toda su información.

4) Eliminar múltiples columnas a la vez

En muchos motores de base de datos (como MySQL y PostgreSQL) es posible borrar varias columnas en una sola sentencia:

ALTER TABLE clientes
DROP COLUMN telefono,
DROP COLUMN pais;

Resultado:

idnombreemail
1Anaana@mail.com
2Brunobruno@mail.com

5) Diferencias entre motores de base de datos

Cada sistema de gestión de bases de datos (SGBD) maneja DROP COLUMN de manera similar, pero con pequeñas variaciones:

  • MySQL / MariaDB: Soporta DROP COLUMN de forma estándar.
  • PostgreSQL: También soporta DROP COLUMN directamente.
  • SQL Server: Permite ALTER TABLE ... DROP COLUMN sin problemas.
  • Oracle: Utiliza ALTER TABLE ... DROP (columna) → sin la palabra COLUMN.

Ejemplo en Oracle:

ALTER TABLE clientes
DROP (telefono);

6) Errores comunes al usar DROP COLUMN

ErrorCausaSolución
❌ Intentar borrar una columna que no existeLa columna no está definida en la tablaVerifica antes con DESCRIBE nombre_tabla;
❌ Borrar una columna usada en una clave primaria o foráneaLas restricciones impiden eliminarlaPrimero elimina la restricción con ALTER TABLE ... DROP CONSTRAINT
❌ Perder datos importantesDROP COLUMN es irreversibleHaz un backup antes de ejecutar la sentencia

7) Cuándo conviene usar DROP COLUMN

Usar DROP COLUMN tiene sentido en situaciones como:

  • Cuando un campo ya no tiene relevancia en el negocio.
  • Cuando existe información redundante que se puede obtener de otras columnas.
  • Para simplificar una tabla y hacerla más eficiente.
  • Si hubo un error de diseño inicial y se creó un campo innecesario.

8) Buenas prácticas antes de usar DROP COLUMN

  1. Revisar dependencias: ¿La columna forma parte de una clave foránea, índice o restricción?
  2. Analizar el impacto: ¿Hay aplicaciones que leen datos de esa columna?
  3. Hacer pruebas en un entorno de desarrollo antes de producción.
  4. Respaldo de datos: un backup puede salvarte si la eliminas por error.
  5. Documentar el cambio: en equipos grandes, anota qué columna se eliminó y por qué.

9) Comparación: DROP COLUMN vs otras operaciones

OperaciónAcciónEjemplo
ADD COLUMNAgrega un campo nuevoALTER TABLE clientes ADD COLUMN edad INT;
MODIFY COLUMNCambia propiedades de una columna existenteALTER TABLE clientes MODIFY COLUMN email VARCHAR(300);
DROP COLUMNElimina una columna y sus datosALTER TABLE clientes DROP COLUMN telefono;

10) Ejemplo completo de evolución de tabla

Veamos cómo evoluciona la tabla pedidos con varias operaciones:

CREATE TABLE pedidos (
  id INT PRIMARY KEY,
  cliente_id INT NOT NULL,
  total DECIMAL(10,2),
  fecha DATE,
  descuento INT
);

Paso 1: Agregar columna

ALTER TABLE pedidos
ADD COLUMN estado VARCHAR(20) DEFAULT 'pendiente';

Paso 2: Modificar columna

ALTER TABLE pedidos
MODIFY COLUMN total DECIMAL(14,4);

Paso 3: Eliminar columna innecesaria

ALTER TABLE pedidos
DROP COLUMN descuento;

Tabla final:

idcliente_idtotalfechaestado
110250.00002024-01-05pendiente

11) Para Cerrar

ALTER TABLE DROP COLUMN es una herramienta poderosa en SQL porque permite eliminar columnas innecesarias y mantener las tablas optimizadas.

  • Es simple de usar: ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;
  • Funciona en casi todos los motores de bases de datos, con pequeñas variaciones.
  • Precaución: una vez eliminada la columna, los datos se pierden para siempre.

Con un buen uso de DROP COLUMN, vas a poder mantener tus bases de datos más limpias, rápidas y adaptadas a los nuevos requerimientos del negocio.

📚 Artículos relacionados

Scroll al inicio