Databases
T05-005 Modificación de tablas
Enunciado
En los siguientes ejercicios, veremos cómo utilizar el comando ALTER TABLE.
Eliminar columnas de una tabla
Utilizaremos la cláusula
DROPal comandoALTER TABLE, junto con las columnas que queremos eliminar. Se eliminarán las columnas indicadas sin poder deshacer esta acción. Además de la definición de la columna, se eliminarán todos los datos que contuviera. No se puede eliminar una columna si es la única que forma la tabla, para ello tendremos que borrar la tabla directamente.Sintaxis:
ALTER TABLE NombreTabla DROP (Columna1 [, Columna2, ...]);Ejemplo:
En el ejercicio anterior hemos generado la tabla ESTUDIANTES con la siguiente estructura:
TABLE_NAME COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION ESTUDIANTES APELLIDOS VARCHAR2 50 - ESTUDIANTES CURSO NUMBER 22 1 ESTUDIANTES FECHANAC DATE 7 - ESTUDIANTES NOMBRE VARCHAR2 25 - Esta estructura es equivalente a la ejecución de la siguiente sentencia:
CREATE TABLE ESTUDIANTES ( Nombre VARCHAR2(25), Apellidos VARCHAR2(50), FechaNac DATE, Curso NUMBER(1) );Para eliminar los dos atributos añadidos en el último apartado, deberíamos ejecutar la siguiente sentencia:
ALTER TABLE ESTUDIANTES DROP ( FechaNac, Curso );Ejercicio:
Imagina que hemos creado la siguiente tabla:
CREATE TABLE MODULOS ( Nombre VARCHAR2(100), NumHoras NUMBER, Codigo NUMBER(4), UnidadCompetencia VARCHAR2(100) );Elimina los atributos Codigo y UnidadCompetencia.
Tipo
Solución
ALTER TABLE MODULOS DROP (
Codigo,
UnidadCompetencia
);
Prueba
SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'MODULOS' ORDER BY COLUMN_NAME;
LibrerÃas (Onfly databases)
CREATE TABLE MODULOS (
Nombre VARCHAR2(100),
NumHoras NUMBER,
Codigo NUMBER(4),
UnidadCompetencia VARCHAR2(100)
);

