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í:
| id | nombre | telefono | pais | |
|---|---|---|---|---|
| 1 | Ana | ana@mail.com | 111-222 | España |
| 2 | Bruno | bruno@mail.com | 333-444 | Argentina |
Ahora decidimos que ya no necesitamos la columna telefono. Para borrarla usamos:
ALTER TABLE clientes
DROP COLUMN telefono;
La nueva tabla queda así:
| id | nombre | pais | |
|---|---|---|---|
| 1 | Ana | ana@mail.com | España |
| 2 | Bruno | bruno@mail.com | Argentina |
👉 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:
| id | nombre | |
|---|---|---|
| 1 | Ana | ana@mail.com |
| 2 | Bruno | bruno@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 COLUMNde forma estándar. - PostgreSQL: También soporta
DROP COLUMNdirectamente. - SQL Server: Permite
ALTER TABLE ... DROP COLUMNsin problemas. - Oracle: Utiliza
ALTER TABLE ... DROP (columna)→ sin la palabraCOLUMN.
Ejemplo en Oracle:
ALTER TABLE clientes
DROP (telefono);
6) Errores comunes al usar DROP COLUMN
| Error | Causa | Solución |
|---|---|---|
| ❌ Intentar borrar una columna que no existe | La columna no está definida en la tabla | Verifica antes con DESCRIBE nombre_tabla; |
| ❌ Borrar una columna usada en una clave primaria o foránea | Las restricciones impiden eliminarla | Primero elimina la restricción con ALTER TABLE ... DROP CONSTRAINT |
| ❌ Perder datos importantes | DROP COLUMN es irreversible | Haz 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
- Revisar dependencias: ¿La columna forma parte de una clave foránea, índice o restricción?
- Analizar el impacto: ¿Hay aplicaciones que leen datos de esa columna?
- Hacer pruebas en un entorno de desarrollo antes de producción.
- Respaldo de datos: un backup puede salvarte si la eliminas por error.
- Documentar el cambio: en equipos grandes, anota qué columna se eliminó y por qué.
9) Comparación: DROP COLUMN vs otras operaciones
| Operación | Acción | Ejemplo |
|---|---|---|
ADD COLUMN | Agrega un campo nuevo | ALTER TABLE clientes ADD COLUMN edad INT; |
MODIFY COLUMN | Cambia propiedades de una columna existente | ALTER TABLE clientes MODIFY COLUMN email VARCHAR(300); |
DROP COLUMN | Elimina una columna y sus datos | ALTER 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:
| id | cliente_id | total | fecha | estado |
|---|---|---|---|---|
| 1 | 10 | 250.0000 | 2024-01-05 | pendiente |
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
- Cómo modificar la estructura de una tabla en SQL con ALTER TABLE paso a paso
Guía completa para principiantes donde aprenderás a usar ALTER TABLE para agregar, eliminar o modificar columnas y restricciones de manera segura. - Diferencia entre ALTER TABLE ADD COLUMN y ALTER TABLE MODIFY COLUMN en SQL
Explicación clara y práctica sobre las diferencias entre agregar nuevas columnas y modificar columnas existentes, con ejemplos en distintos motores de bases de datos - Renombrar columnas y tablas en SQL con ALTER TABLE RENAME
Paso a paso para cambiar nombres de tablas y columnas, incluyendo compatibilidad entre MySQL, PostgreSQL, SQL Server y Oracle. - Impacto en el rendimiento al usar ALTER TABLE en tablas grandes
Explicación del impacto en el rendimiento de ALTER TABLE cuando se aplica en tablas con millones de registros, y estrategias para minimizar demoras. - ALTER TABLE en SQL con restricciones PRIMARY KEY y FOREIGN KEY explicados
Guía práctica para agregar o eliminar claves primarias y foráneas con ALTER TABLE, con ejemplos de integridad referencial y buenas prácticas de diseño.
