Modificación de tablas MySQL con ALTER TABLE

Clase 14 de 24Curso de Fundamentos de Bases de Datos

Resumen

Aprender a utilizar el comando ALTER TABLE en MySQL es fundamental para gestionar adecuadamente bases de datos. Saber agregar, modificar o eliminar columnas en una tabla puede facilitar el desarrollo eficiente y ordenado del sistema, sobre todo cuando surgen nuevas necesidades o ajustes puntuales que requieren cambios precisos.

¿Cómo agregar una columna nueva en MySQL?

Para insertar una nueva columna en una tabla ya existente, utiliza el comando ALTER TABLE junto con ADD COLUMN. La estructura básica del comando es:

ALTER TABLE nombre_tabla ADD COLUMN nombre_columna tipo_dato;

Por ejemplo, crear una columna llamada price del tipo float en la tabla test:

ALTER TABLE test ADD COLUMN price float;

¿Cómo eliminar columnas de una tabla?

En caso de querer eliminar una columna específica, empleamos:

ALTER TABLE nombre_tabla DROP COLUMN nombre_columna;

Ejemplo:

ALTER TABLE test DROP COLUMN price;

¿Qué hacer para modificar columnas ya existentes?

Si necesitas cambiar algún aspecto de una columna, por ejemplo, el tipo de dato o añadir restricciones, es recomendable utilizar MODIFY COLUMN:

ALTER TABLE nombre_tabla MODIFY COLUMN nombre_columna nuevo_tipo;

Un ejemplo práctico puede ser convertir la columna price de float a decimal, agregando precisión decimal y evitando valores nulos:

ALTER TABLE test MODIFY COLUMN price DECIMAL(10,3) NOT NULL;

¿Qué significan los parámetros DECIMAL(10,3)?

  • El valor (10) indica la cantidad total de dígitos que admite.
  • El valor (3) representa cuántos dígitos acepta después del punto decimal.

Esto es especialmente útil con datos monetarios o financieros, en los cuales la precisión decimal es crucial.

¿Cómo reordenar columnas en MySQL?

Aunque el orden de las columnas no afecta directamente al rendimiento de la base de datos, puede ayudar significativamente a organización visual y claridad del código. Puedes añadir palabras clave como FIRST o AFTER columna_existente al agregar columnas, para controlar el orden:

Agregar al inicio:

ALTER TABLE test ADD COLUMN price float FIRST;

Agregar después de otra columna específica:

ALTER TABLE test ADD COLUMN price float AFTER quantity;

¿Es posible renombrar columnas y tablas?

Sí, si necesitas renombrar columnas o tablas completas, MySQL maneja operaciones simples y claras:

Para columnas:

ALTER TABLE nombre_tabla RENAME COLUMN nombre_antiguo TO nuevo_nombre;

Ejemplo renombrando price a prices:

ALTER TABLE test RENAME COLUMN price TO prices;

Y para renombrar la tabla completa:

ALTER TABLE nombre_antiguo RENAME TO nuevo_nombre;

Ejemplo modificando test a tests:

ALTER TABLE test RENAME TO tests;

¿Qué consideraciones tomar antes de modificar columnas con datos?

Ten siempre presente que, al utilizar MODIFY COLUMN en tablas con registros existentes, el nuevo tipo de dato debe ser compatible con el tipo anterior para evitar errores en los registros actuales. La práctica recomendada cuando estos conflictos pueden ocurrir es crear columnas nuevas y luego migrar los datos gradualmente usando operaciones adicionales como UPDATE e INSERT.

Finalmente, siempre conviene realizar una revisión previa o peer review con un compañero para validar los cambios en bases de datos importantes y asegurar que todos los detalles estén correctamente previstos.

Te invitamos a compartir tus experiencias y sugerencias con estos comandos de MySQL. ¿Has tenido dificultades particulares al implementarlos en alguno de tus proyectos?