Modificando tablas en SQL
Si vamos a realizar una modificación en la estructura de una tabla vamos utilizar el comando DDL “ALTER TABLE”.
Este comando realiza un COMMIT implícito y permite:
Añadir columnas:
ALTER TABLE hr.employees ADD (job_id number);
Modificar columnas:
ALTER TABLE hr.employees MODIFY (job_id number (5,2));
Borrar columnas:
ALTER TABLE hr.employees DROP COLUMN job_id;
Renombrar columnas:
ALTER TABLE hr.employees RENAME COLUMN job_id to job_id2;
Marcar una columna como no usada:
ALTER TABLE hr.employees SET UNUSED COLUMN job_id;
Modificar una tabla a solo lectura:
ALTER TABLE hr.employees READ ONLY;
Consideraciones al modificar los campos de una tabla:
Si cambiamos el tipo de dato de un campo, la tabla debe estar vacía.
No vamos a poder cambiar el tipo de dato de un campo que es "FOREIGN KEY" o que es referenciado por una "FOREIGN KEY".
Si vamos a modificar un campo disminuyendo la longitud (precisión o escala) del tipo de dato, la tabla debe estar vacía, los registros deben tener valores nulos en tal campo o los datos existentes deben ser inferiores o iguales a la nueva longitud.
Podemos modificar un campo definido "NULL" a "NOT NULL", siempre que la tabla esté vacía o no contenga valores nulos.
No puede redefinirse como "NOT NULL" un campo que es clave primaria.
Sí un campo tiene un valor por defecto y se modifica el tipo de dato de tal campo, Oracle analiza que el valor por defecto pueda convertirse al nuevo tipo de dato cuando sea necesario insertarlo; si el valor por defecto no se puede convertir al nuevo tipo de dato que se intenta modificar, la modificación del campo no se realiza.
Ejemplos Comando Alter Table






