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 DROP al comando ALTER 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

DDL

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) );