• Categoría: Oracle SQL
  • Visto: 13981

Ratio: 4 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio desactivado
 

Una vez que ya tenemos creadas las tablas de nuestro modelo de datos se producen constantes cambios en la vida del mismo, modificación de columnas, adición de nuevas columnas, borrado de columnas obsoletas, etc.

El estamento Oracle que vamos a utilizar para estás operaciones es:

 

ALTER TABLE esquema.nombre_tabla clausulas [ADD|DROP|MODIFY]

 

Vamos a crear la tabla clientes como ejemplo para poder realizar las practicas. 


CREATE TABLE factura.clientes
(
   codcliente      number(10) NOT NULL,
   cif               varchar2(20),
   nombre         varchar2(100),
   direccion       varchar2(100)
)  
TABLESPACE DATOS01;


 

Añadir columnas a una tabla en Oracle.

 

Para añadir una o varias columnas a una tabla usaremos la cláusula ADD, vamos a añadir las columnas telefono y fax de tipo de dato VARCAHR2(), desde sqlplus ejecutamos lo siguiente:


ALTER TABLE factura.clientes ADD (telefono VARCHAR2(9),  fax VARCHAR2(9));

enlaces patrocinados

También sería valida esta otra forma en dos ALTER TABLE, 


ALTER TABLE factura.clientes
    ADD telefono VARCHAR2(9);
ALTER TABLE factura.clientes
    ADD fax VARCHAR2(9);


 

Si hacemos un desc de la tabla clientes veremos como queda después de añadir las dos columnas: 


SQL> desc clientes
Name                                Null?      Type
----------------------------------- ------     -----------------------------------
CODCLIENTE                          NOT NULL   NUMBER(10)
CIF                                            VARCHAR2(20)
NOMBRE                                         VARCHAR2(100)
DIRECCION                                      VARCHAR2(100)
TELEFONO                                       VARCHAR2(9)
FAX                                            VARCHAR2(9)


 

Eliminar columnas de una tabla en Oracle.

 

Para eliminar una o varias columnas de una tabla usaremos la cláusula DROP, aunque parece claro pero tener el borrado de una columna implica la perdida de la información contenida en la columna para todas las filas de la tabla, esta operación no permite rollback. Vamos a borrar las dos columnas que hemos añadido anteriormente, desde sqlplus ejecutamos lo siguiente: 


ALTER TABLE factura.clientes DROP (telefono,  fax);

 

También sería valida con dos ALTER TABLE


ALTER TABLE clientes
   DROP (telefono);
ALTER TABLE clientes
   DROP (fax);


 

Modificar columnas de una tabla en Oracle.

 

Para modificar un o varias columnas de una tabla usaremos la cláusula MODIFY, con esta cláusula podremos modificar las características de la columna, cambio de tipo de dato, constraint de null a not null, etc. Si realizamos un cambio de tipo de dato hay que tener cuidado con las conversiones, truncados y posible pedida de información, al igual que la cláusula DROP no permite rollback. Vamos a cambiar el tipo de datos de la columna telefono y fax al tipo de dato NUMBER(9), desde sqlplus ejecutamos lo siguiente:

 


ALTER TABLE clientes MODIFY (telefono NUMBER(9), fax NUMBER(9));

 

También sería valida con dos ALTER TABLE


ALTER TABLE clientes
   MODIFY (telefono NUMBER(9));
ALTER TABLE clientes
   MODIFY (fax NUMBER(9));


 

La tabla clientes quad así: 


SQL> desc clientes
Name                                      Null?      Type
----------------------------------------- --------   ----------------------------
CODCLIENTE                                NOT NULL   NUMBER(10)
CIF                                                  VARCHAR2(20)
NOMBRE                                               VARCHAR2(100)
DIRECCION                                            VARCHAR2(100)
TELEFONO                                             NUMBER(9)
FAX                                                  NUMBER(9)