Como complemento al artículo donde explicábamos cómo crear tablas mediante DDL en SQL, en este artículos explicaremos cómo modificar las tablas que hayamos creado previamente en un espacio de trabajo.
Para modificar una tabla en SQL, nos ayudamos del comando ALTER TABLE . El formato general será el siguiente:
ALTER TABLE nombre_tabla {acción_modificar_columna | acción_modificar_restricción_tabla};
es decir , ALTER TABLE seguido del nombre de la tabla a modificar y a continuación acciones que irán enfocadas a modificar una columna, añadir y/o modificar restricciones o modificar una tabla.
Las acciones destinadas a modificar columnas son las siguientes:
- Añadir columnas : ADD (columna def_columnas [, columna2 def_columnas …] ).
- Ejemplo: ALTER TABLE COCHE ADD (caballos NUMBER(3))
- Borrar columnas: DROP (columna [, columna2 def_columnas, …] )
- Ejemplo: ALTER TABLE COCHE DROP (motor NUMBER(20))
- Modificar columnas: MODIFY (columna def_columnas [, columna2 def_columnas …] )
- Ejemplo: ALTER TABLE COCHE MODIFY (motor NUMBER(20)) .
- Lógicamente la columna ha de estar creada con anterioridad, las opciones que Oracle nos permite modificar son:
- Incrementar la precisión o anchura de los tipos de datos
- Sólo se puede reducir la anchura, si esa columna posee nulo en todos los registros, todos los valores son tan pequeños como la nueva anchura o no hay registros.
- Renombrar columnas: RENAME COLUMN nombreAntiguo TO nombreNuevo . Ejemplo: ALTER TABLE COCHE RENAME COLUMN combustible TO tipoCombustible.
Las acciones enfocadas a modificar las restricciones son las siguientes:
- Añadir restricciones: ADD [CONSTRAINT nombre] tipoDeRestricción(columnas)
- Ejemplo: ALTER TABLE COCHE ADD CONSTRAINT COCHE_PK PRIMARY KEY (matricula). Añadiría a la tabla Coche la restricción de nombre COCHE_PK ,de tipo PRIMARY KEY referente a la columna matrícula.
- El tipo de Restricción puede ser:
- CHECK : Para restringir los valores de la columna a los que definamos nosotros.
- PRIMARY KEY: Para indicar que es clave primaria.
- FOREIGN KEY: Para indicar que es clave ajena.
- Borrar restricciones: DROP PRIMARY KEY | UNIQUE (campos) | CONSTRAINT nombreRestricción. Es decir DROP seguido de PRIMARY KEY para borrar una clave primaria , UNIQUE con los campos que deseemos o CONSTRAINT y nombre de restricción para borrar una restricción en concreto.
- Ejemplo: ALTER TABLE COCHE DROP PRIMARY KEY
- Ejemplo: ALTER TABLE COCHE DROP CONSTRAINT COCHE_CHK
- Desactivar restricciones: DISABLE CONSTRAINT nombre Para desactivar restricciones previamente creadas.
- Ejemplo: ALTER TABLE COCHE DISABLE CONSTRAINT COCHE_CHK .
- Activar restricciones: ENABLE CONSTRAINT nombre . Para activar restricciones previamente creadas y desactivadas.
- Ejemplo: ALTER TABLE COCHE ENABLE CONSTRAINT COCHE_CHK
- Renombrar restricciones: RENAME CONSTRAINT nombreViejo TO nombreNuevo. Para cambiar el nombre de una restricción previamente creada.
- Ejemplo: ALTER TABLE COCHE RENAME CONSTRAINT COCHE_CHK TO COMBUSTIBLE_CHK
Las acciones destinadas a modificar una tabla son las siguientes:
- Borrar una tabla: DROP TABLE nombre_tabla. Al borrar una tabla tenemos que tener en cuenta que el borrado es irreversible, desapareciendo los datos que tenía, aunque prevalecen las vistas y los sinónimos referentes a esa tabla, siendo conveniente eliminarlos posteriormente. Lógicamente sólo podremos borrar tablas si tenemos permisos para ello.
- Ejemplo: DROP TABLE conductor.
- Renombrar una tabla: RENAME nombreViejo TO nombreNuevo. Cambia el nombre de una tabla previamente creada de un nombre antiguo a uno nuevo.
- Ejemplo: RENAME conductor TO conductores.
- Borrar el contenido de una tabla: TRUNCATE TABLE nombreTabla. Borra los datos de la tabla sin borrar la tabla.
- Ejemplo: TRUNCATE TABLE conductores.
Advertisement