Módulo 7 · Diseñar estructuras

Modifica tablas con ALTER TABLE

Cambia una estructura existente sin olvidar sus datos y dependencias.

24 minNivel IntermedioAntes necesitas: CREATE TABLE y restricciones

0 de 45 lecciones

Al terminar, podrás

  • Planificar el efecto de una columna nueva.
  • Añadir columnas opcionales o con DEFAULT.
  • Reconocer cuándo una migración necesita varios pasos.

Recupera lo aprendido: ¿Qué restricción utilizarías para que una columna no pueda quedar sin valor?

La idea clave

ALTER TABLE cambia una estructura que ya puede contener datos. Antes de ejecutarlo debes decidir qué ocurrirá con las filas existentes, las restricciones, los índices y el código que usa esa tabla.

Primero, inventaria las dependencias: un cambio de nombre o tipo puede romper consultas, vistas, formularios y procesos externos aunque la sentencia SQL sea válida.

La sintaxis básica

Añadir una columna
ALTER TABLE tabla
ADD COLUMN columna tipo;
Añadir con valor predeterminado
ALTER TABLE tabla
ADD COLUMN columna tipo DEFAULT valor;

Ejemplo paso a paso

Añadiremos un teléfono opcional a clientes. Al no declarar NOT NULL ni un valor predeterminado, las filas existentes reciben NULL.

SQL comprobado
ALTER TABLE clientes
ADD COLUMN telefono TEXT;

SELECT id, nombre, telefono
FROM clientes
WHERE id IN (1, 2)
ORDER BY id;
Filas existentes después del cambio
idnombretelefono
1Ana TorresNULL
2Luis MartínNULL

Cómo funciona

  1. La tabla conserva sus filas y columnas anteriores.
  2. La nueva columna aparece al final de la estructura en SQLite.
  3. Los valores existentes quedan en NULL hasta que se actualicen.
Comprueba tu comprensión

¿Qué debes decidir antes de añadir una columna NOT NULL?

Un error habitual

Añadir una columna obligatoria sin estrategia para los datos existentes

Consulta problemática
ALTER TABLE clientes
ADD COLUMN telefono TEXT NOT NULL;

Una tabla con filas existentes no puede inventar teléfonos válidos. Según el motor, la sentencia fallará o exigirá un valor predeterminado. Suele ser más seguro añadirla como opcional, rellenar datos, validar y después endurecer la regla si el motor lo permite.

Practica con datos

Laboratorio SQL

Resuelve la consulta

Pendiente

Escribe la sentencia SQL que añada a productos una columna activo de tipo INTEGER con valor predeterminado 1.

Resultado esperado: una columna llamada activo, de tipo INTEGER y con DEFAULT 1.

Ver tablas y datos

Cargando la estructura del ejercicio…

La consulta usa datos ficticios y se ejecuta solo en este navegador.

Fuentes técnicas consultadas

Las operaciones disponibles y su coste varían entre motores. SQLite ofrece un conjunto más reducido de cambios directos; PostgreSQL y MySQL documentan opciones adicionales que pueden validar o reescribir datos. La lección utiliza ADD COLUMN como base portable.

Comprueba si puedes explicarlo

Una tabla ya tiene filas. ¿Qué debes decidir antes de añadir una columna obligatoria?

Ver respuesta razonada

Cómo dar a cada fila existente un valor válido. Un DEFAULT solo sirve si expresa una regla real. Otra estrategia es añadir la columna opcional, rellenarla y después exigirla.

Responde antes de abrir la explicación. Si necesitaste ayuda, cierra la respuesta y vuelve a explicarlo con tus palabras antes de dar la lección por aprendida.

Qué debes recordar

  • ALTER TABLE actúa sobre datos y dependencias existentes.
  • Planifica el valor inicial de una columna nueva.
  • Prueba la migración y su reversión en una copia antes de producción.

A continuación: estudia cuándo un índice puede mejorar una consulta.

Conceptos relacionados