Vemos sentencias en SQL para la supresion y modificación tanto de tablas como de restricciones.
Supresión de tablas:
DROP TABLE: suprime una tabla de la base de datos. Cada usuario puede borrar sus propias tablas, pero solo el administrador o algún usuario con el privilegio "DROP ANY TABLE" puede borrar las tablas de otro usuario. Al suprimir una tabla también se suprimen los índices y los privilegios asociados a ella. Las vistas y los sinónimos creados a partir de esta tabla dejan de funcionar pero siguen existiendo en la base de datos por tanto deberíamos eliminarlos.
Ejemplo:
DROP TABLE [USUARIO].NOMBRETABLA [CASCADE CONSTRAINTS];
TRUNCATE: permite suprimir todas las filas de una tabla y liberar el espacio ocupado para otros usos sin que reaparezca la definición de la tabla de la base de datos. Una orden TRUNCATE no se puede anular, como tampoco activa disparadores DELETE.
TRUNCATE TABLE [USUARIO.]NOMBRETABLA [{DROP | REUSE} STORAGE];
Modificación de tablas:
Se modifican las tablas de dos formas: Cambiando la definición de una columna (MODIFY) ó añadiendo una columna a una tabla existente (ADD):
Formato:
ALTER TABLE NOMBRETABLA
{[ADD (COLUMNA [,COLUMNA] )]
[MODIFY (COLUMNA [,COLUMNA] )]
[ADD CONSTRAINT RESTRICCION]
[DROP CONSTRAINT RESTRICCION]};
ADD= Añade una columna o mas al final de una tabla.
MODIFY= Modifica una o mas columnas existentes en la tabla.
ADD CONSTRAINT= Añade una restricción a la definición de la tabla.
DROP CONSTRAINT= Elimina una restricción de la tabla.
A la hora de añadir una columna a una tabla hay que tener en cuenta:
Con la orden ALTER TABLE se añaden restricciones a una tabla.
Formato:
ALTER TABLE NOMBRETABLA
ADD CONSTRAINT NOMBRECONSTRAINT
Borrado de restricciones:
La orden ALTER TABLE con la cláusula DROP CONSTRAINT; con la que se borran las restricciones con nombre y las asignadas por el sistema. Formato:
ALTER TABLE NOMBRETABLA
DROP CONSTRAINT NOMBRE_CONSTRAINT,
NOMBRE_RESTRICCION:
DROP TABLE: suprime una tabla de la base de datos. Cada usuario puede borrar sus propias tablas, pero solo el administrador o algún usuario con el privilegio "DROP ANY TABLE" puede borrar las tablas de otro usuario. Al suprimir una tabla también se suprimen los índices y los privilegios asociados a ella. Las vistas y los sinónimos creados a partir de esta tabla dejan de funcionar pero siguen existiendo en la base de datos por tanto deberíamos eliminarlos.
Ejemplo:
DROP TABLE [USUARIO].NOMBRETABLA [CASCADE CONSTRAINTS];
TRUNCATE: permite suprimir todas las filas de una tabla y liberar el espacio ocupado para otros usos sin que reaparezca la definición de la tabla de la base de datos. Una orden TRUNCATE no se puede anular, como tampoco activa disparadores DELETE.
TRUNCATE TABLE [USUARIO.]NOMBRETABLA [{DROP | REUSE} STORAGE];
Modificación de tablas:
Se modifican las tablas de dos formas: Cambiando la definición de una columna (MODIFY) ó añadiendo una columna a una tabla existente (ADD):
Formato:
ALTER TABLE NOMBRETABLA
{[ADD (COLUMNA [,COLUMNA] )]
[MODIFY (COLUMNA [,COLUMNA] )]
[ADD CONSTRAINT RESTRICCION]
[DROP CONSTRAINT RESTRICCION]};
ADD= Añade una columna o mas al final de una tabla.
MODIFY= Modifica una o mas columnas existentes en la tabla.
ADD CONSTRAINT= Añade una restricción a la definición de la tabla.
DROP CONSTRAINT= Elimina una restricción de la tabla.
A la hora de añadir una columna a una tabla hay que tener en cuenta:
- Si la columna no esta definida como NOT NULL se le puede añadir en cualquier momento.
- Si la columna esta definida como NOT NULL se pueden seguir estos pasos:
- Se añade una columna sin especificar NOT NULL.
- Se da valor a la columna para cada una de las filas.
- Se modifica la columna NOT NULL.
- Se puede aumentar la longitud de una columna en cualquier momento.
- Es posible aumentar o disminuir el numero de posiciones decimales en una columna de tipo NUMBER.
- Si la columna es NULL en todas las filas de la tabla, se puede disminuir la longitud y modificar el tipo de dato
- La opción MODIFY NOT NULL solo será posible cuando la tabla no contenga ninguna fila con valor nulo en la columna que se modifica.
Con la orden ALTER TABLE se añaden restricciones a una tabla.
Formato:
ALTER TABLE NOMBRETABLA
ADD CONSTRAINT NOMBRECONSTRAINT
Borrado de restricciones:
La orden ALTER TABLE con la cláusula DROP CONSTRAINT; con la que se borran las restricciones con nombre y las asignadas por el sistema. Formato:
ALTER TABLE NOMBRETABLA
DROP CONSTRAINT NOMBRE_CONSTRAINT,
NOMBRE_RESTRICCION:
Agustin Jareño