Nicol Bibiana Barrera Mendieta
Les comparto mi proceso
Cuando una base de datos ya está en producción, eliminar y recrear tablas no es una opción viable. ALTER TABLE es el comando que permite modificar tablas existentes sin perder los datos que ya contienen. Agregar columnas, cambiar tipos de dato, renombrar campos o gestionar restricciones son operaciones cotidianas que todo profesional de bases de datos necesita dominar con precisión y responsabilidad.
¿Cómo agregar nuevas columnas con ALTER TABLE?
La sintaxis parte siempre de la misma base: ALTER TABLE seguido del nombre de la tabla y la acción a realizar. Para agregar una columna se utiliza la cláusula ADD COLUMN [01:20].
sql ALTER TABLE empleados_demo ADD COLUMN email TEXT;
Este patrón se repite cada vez que se necesita incorporar un campo nuevo. Por ejemplo, para agregar una fecha de ingreso con un valor por defecto:
sql ALTER TABLE empleados_demo ADD COLUMN fecha_ingreso DATE NOT NULL DEFAULT CURRENT_DATE;
También es posible agregar columnas de tipo booleano con restricciones incluidas [02:30]:
sql ALTER TABLE empleados_demo ADD COLUMN activo BOOLEAN NOT NULL DEFAULT TRUE;
Para verificar que los cambios se aplicaron correctamente, se consulta la tabla information_schema.columns, seleccionando el nombre de columna, tipo de dato y valor por defecto [03:05].
¿Cómo cambiar el tipo de dato de una columna existente?
Cuando un campo se creó con un tipo de dato incorrecto, ALTER COLUMN junto con TYPE permite corregirlo sin eliminar la columna [04:00]. La diferencia importante es que aquí no se usa ADD, sino ALTER:
sql ALTER TABLE empleados_demo ALTER COLUMN email TYPE VARCHAR(100);
En este ejemplo, el campo email pasa de tipo TEXT a VARCHAR, que significa character varying o variación de caracteres. VARCHAR permite definir una longitud máxima específica, algo que TEXT no restringe.
¿Se pueden modificar las restricciones de una columna?
Las restricciones o constraints también se pueden alterar. Si un campo fue creado sin la restricción NOT NULL y posteriormente se requiere agregarla, ALTER TABLE lo resuelve [05:15].
De igual forma, es posible eliminar una restricción existente con DROP NOT NULL:
sql ALTER TABLE empleados_demo ALTER COLUMN email DROP NOT NULL;
¿Cómo renombrar columnas y agregar constraints con ALTER?
Para renombrar una columna se utiliza RENAME COLUMN [05:50]. La sintaxis indica el nombre actual y el nuevo nombre separados por la palabra clave TO:
sql ALTER TABLE empleados_demo RENAME COLUMN cargo TO puesto;
El campo deja de llamarse cargo y pasa a llamarse puesto de forma inmediata.
Agregar restricciones con nombre propio se logra mediante ADD CONSTRAINT [06:30]. Esto es útil para aplicar reglas como UNIQUE a campos que no las tenían al momento de su creación:
sql ALTER TABLE empleados_demo ADD CONSTRAINT email_unico UNIQUE (email);
Aquí se crea una restricción llamada email_unico que impide valores duplicados en el campo email. Darle un nombre descriptivo a cada constraint facilita su administración posterior.
¿Qué precauciones tomar al eliminar elementos con DROP?
La palabra clave DROP dentro de ALTER TABLE es irreversible [07:20]. No existe un "Control Z" en SQL. Se puede eliminar tanto una restricción como una columna completa:
DROP CONSTRAINT email_unico.DROP COLUMN activo.sql ALTER TABLE empleados_demo DROP COLUMN activo;
Cada operación DROP borra datos y definiciones de forma permanente, por lo que debe ejecutarse con extrema precaución en entornos productivos.
¿Es posible renombrar una tabla completa?
ALTER TABLE también permite cambiar el nombre de la tabla en sí misma [08:30]:
sql ALTER TABLE empleados_demo RENAME TO empleados_v2;
Esta capacidad resulta práctica durante migraciones o reorganizaciones del esquema de base de datos.
En resumen operativo, ALTER TABLE soporta estas acciones principales:
El desafío propuesto es ejecutar tres operaciones sobre una tabla de clientes: agregar una columna fecha_nacimiento de tipo DATE, renombrarla a nacimiento y finalmente eliminarla con DROP COLUMN. Comparte tu resultado en los comentarios.
Nicol Bibiana Barrera Mendieta
Les comparto mi proceso
Jeisson Jimenez
Seria interesante ir trabajando clase a clase en el mismo código dejando tablas y avances por realizar por nosotros mismos, así no iniciar desde 0 y focalizar todo en un proyecto final
Mireya Lara
odio los retos que interrumpen la clase!
Luis Gonzalez
Yo creo que están buenos para repasar algunos conceptos breves que aprendimos en la clase
Diana Mildred Galindo
Me quedo la duda en la clase si para agregar multiples columnas en una table se tenia que hacer una por una como en el ejemplo pero no es necesario puedes listarlas del mismo como que cuando estas creandolas.
Sergio Baudilio Pinilla Martinez
Hay que tener en cuenta que realizar un ALTER TABLE varia en función de si la tabla ya tiene datos o no
En el ejemplo , el campo fecha_ingreso si la tabla ya tiene datos todos van a tener la fecha de ingreso al momento de correr el script y luego si el valor pasa hacer la fecha al momento de insertar el dato.
Darwan Arturo Alfonso Ramos
¿Puedo editar varios campos o editar varias columnas en un mismo "alter table" o toca uno por cada uno?
¡Hola, Darwan Arturo! Esa es una excelente pregunta.
En la mayoría de los motores de bases de datos relacionales (como PostgreSQL), el comando ALTER TABLE está diseñado para ejecutar una operación a la vez.
Si intentas poner varias instrucciones en una sola línea, lo más probable es que recibas un error de sintaxis. La lógica detrás de esto es la seguridad: cada alteración al esquema de una tabla es una operación delicada, y SQL prefiere que cada cambio sea explícito y controlado.
Aunque pueda parecer tedioso, piensa en ALTER TABLE como un "bisturí". Prefieres hacer un corte preciso y verificar que todo esté bien antes de pasar al siguiente, especialmente cuando los datos están en juego.
¿Qué te hace pensar que sería más eficiente hacerlo todo en una sola línea? ¿Te preocupa el rendimiento o solo la comodidad al escribir?
Josue Herrera
Comparto mi proceso, un saludo!
Juan Sebastián Martínez Medina
David Alejandro Santana Bejarano
Aqu[i comparto mi resultado
Diana Mildred Galindo
¿Por qué es mejor modificar que recrear tablas?
Porque recrear una tabla implica un proceso destructivo: tendrías que eliminar la tabla original (DROP TABLE), perdiendo absolutamente todos los registros, para luego volver a crearla con la nueva estructura (CREATE TABLE). En un entorno de producción con miles o millones de datos de usuarios reales, esto es impensable.
Modificar mediante ALTER TABLE te permite hacer cirugías precisas en caliente. Puedes agregar restricciones de seguridad (como hacer que un correo sea UNIQUE), cambiar nombres o añadir campos sin interrumpir el servicio ni sacrificar la información histórica. Es la diferencia entre remodelar una habitación de tu casa y demoler la casa entera solo para agregar una ventana. Dominar estas alteraciones te da la flexibilidad necesaria para adaptar tu software a los nuevos requerimientos del negocio de forma segura y profesional.
José Eder Guzmán Mendoza
El comando ALTER TABLE permite modificar tablas existentes sin perder los datos almacenados, convirtiéndose en una herramienta esencial para administrar bases de datos en producción. Gracias a este comando es posible agregar columnas, cambiar tipos de datos, renombrar campos, modificar restricciones y reorganizar estructuras sin necesidad de eliminar la tabla original.
Entre las operaciones más comunes destacan ADD COLUMN para incorporar nuevos campos, ALTER COLUMN ... TYPE para cambiar tipos de dato y SET/DROP NOT NULL para ajustar restricciones de nulidad. También se pueden aplicar restricciones adicionales mediante ADD CONSTRAINT, como reglas UNIQUE para evitar duplicados, y renombrar columnas o tablas usando RENAME COLUMN y RENAME TO.
Por otro lado, las operaciones con DROP COLUMN o DROP CONSTRAINT requieren extrema precaución, ya que eliminan información o configuraciones de forma irreversible. En conjunto, ALTER TABLE ofrece flexibilidad para evolucionar la estructura de una base de datos mientras se mantiene la integridad y continuidad de la información almacenada.
Miguel Gomez
Se pueden hacer varias cambios en una sola instruccion de ALTER TABLE en PostgreSQL?
Sí, PostgreSQL te permite agrupar múltiples acciones en una sola sentencia ALTER TABLE separándolas por comas. Es una forma eficiente de realizar cambios estructurales sin tener que ejecutar el comando repetidamente.
Por ejemplo: ALTER TABLE tabla ADD COLUMN x INT, RENAME COLUMN y TO z;
¿Qué cambios específicos tienes en mente para tu tabla y cómo los agruparías?
Jesús Ulises Guadarrama Chávez
Ojo con ALTER COLUMN - "DROP" y"SET"
DROP NOT NULL - Permite valores nulos.SET NOT NULL - Este campo es obligatorio y no puede quedar vacío.Sebastian Sanchez Jaramillo
David Esaú Díaz Roldán
Rafael Camacho Pelaez
Mario Ortiz
Julian David Arce Rodriguez
Lo vamos logrando !!!!