sql >> Base de Datos >  >> RDS >> Oracle

Cómo alterar la tabla agregar columna oráculo

Cómo modificar la columna de adición de tabla en la base de datos de Oracle

  • Usted agrega una nueva columna usando ALTER TABLE ADD COLUMN declaración en Oracle
  • La tabla debe estar incluida en su esquema para modificar una tabla, o debe tener el privilegio de objeto ALTER para la tabla o el privilegio de sistema ALTER ANY TABLE.
  • Si una vista, una vista materializada, un disparador, un índice basado en funciones, una restricción de verificación, una función o un procedimiento del paquete depende de una tabla base, la alteración de la tabla base o sus columnas puede afectar el objeto dependiente. Por ejemplo, los objetos PLSQL se vuelven no válido  si el objeto de la tabla dependiente cambia y tiene que volver a hacerlos válidos

Podemos agregar una nueva columna a la definición de la tabla usando el comando modificar tabla agregar

ALTER TABLE tech_master ADD (name  varchar2(9));
Table Altered
  • Antes de 11g, si se agrega una nueva columna a una tabla, la columna inicialmente es NULL a menos que especifique la cláusula DEFAULT . . Cuando especifica un valor predeterminado, la base de datos actualiza inmediatamente cada fila con el valor predeterminado. Tenga en cuenta que esto puede llevar algún tiempo y que, durante la actualización, hay un bloqueo DML exclusivo en la tabla.
  • Para algunos tipos de tablas (por ejemplo, tablas sin columnas LOB), si especifica una restricción NOT NULL y un valor predeterminado, la base de datos puede optimizar la operación de adición de columnas y reducir en gran medida la cantidad de tiempo que la tabla es bloqueado para DML. Lo mismo ocurre con la adición de columnas no nulas con valor predeterminado
  • Oracle ha introducido la función de adición rápida de columnas en 11g, por lo que cuando agregamos una columna no nula con un valor predeterminado o una columna nula con un valor predeterminado, Oracle agrega la columna inmediatamente y no actualiza cada fila con el valor predeterminado. S
  • o incurre en alguna penalización por la generación de rehacer y deshacer. Cuando un usuario selecciona la columna para un registro existente, Oracle obtiene el valor predeterminado del diccionario de datos y se lo devuelve al usuario.

No puede especificar dónde debe aparecer la columna. La columna recién agregada se convierte en la última columna

 Del mismo modo podemos añadir varias columnas a la tabla

ALTER TABLE table_name
ADD (col1 column datatype [default  expr],
col2 column datatype [default  expr],
...
coln column datatype [default  expr]);

Example
ALTER TABLE customer_master
ADD (location_name varchar2(100),
last_login date);

Las convenciones de nomenclatura de columnas son las mismas que en el caso de la instrucción Crear tabla

  • El nombre que elija para una columna debe seguir estas reglas estándar:
  • El nombre debe comenzar con una letra A-Z o a-z
  • puede contener números y guiones bajos
  • Puede estar en MAYÚSCULAS o en minúsculas
  • Puede tener hasta 30 caracteres de longitud
  • No se puede usar el mismo nombre de otro objeto existente en su esquema
  • No debe ser un servidor de Oracle y una palabra reservada de SQL

Los tipos de datos son nuevamente los mismos que los de la declaración de creación de tabla

Personaje -CHAR, NCHAR, VARCHAR2 y NVARCHAR2.
– El tipo de datos CHAR es una cadena alfanumérica de longitud fija que tiene una longitud máxima en bytes.
-Al crear un tipo de datos CHAR, la base de datos conservará espacio para los datos entrantes y, si los datos son más cortos que el tamaño máximo, se rellenarán con espacios a la derecha
-El tipo de datos VARCHAR2 es una variable -longitud cadena alfanumérica, que tiene una longitud máxima en bytes. Puede almacenar hasta 4000 bytes.
Número -NUMBER
-El tipo de datos NUMBER almacena números con precisión y escala.
-Los tipos de datos numéricos almacenan enteros negativos y positivos, números de punto fijo y números de punto flotante
– Cuando una columna se define como NÚMERO (6, 2), el rango de valores se puede almacenar desde –9999.99 hasta 9999.99. Oracle redondea los números de coma flotante.
Fecha y hora –FECHA, MARCA DE TIEMPO (con zona horaria o zona horaria local), INTERVALO AÑO A MES &INTERVALO DÍA A SEGUNDO.
-El tipo de datos DATE se utiliza para almacenar información de fecha y hora.
-Este tipo de datos tiene una serie de funciones específicas para manipular, formatear y ver sus datos.
– El tipo de datos DATE tiene almacenamiento de siete bytes y tiene información sobre siglo, año, mes, día, horas, minutos y segundos.
– El parámetro NLS_DATE_FORMAT se puede cambiar para controlar la visualización de los datos. La función SYSDATE devuelve la fecha actual
Objetos grandes -BLOB (objeto grande binario) , CLOB (objeto de carácter grande) , NCLOB &BFILE
:las columnas de estos tipos de datos pueden almacenar datos no estructurados, incluidos texto, imágenes, videos y datos espaciales. -El tipo de datos CLOB puede almacenar hasta ocho terabytes de datos de caracteres utilizando el conjunto de caracteres de la base de datos CHAR.
-El tipo de datos BLOB se usa para almacenar grandes objetos binarios no estructurados, como los asociados con datos de imagen y video, donde los datos son simplemente un flujo de valores de "bit".
-El valor del tipo de datos BFILE funciona como un localizador de archivos o un puntero a un archivo en el sistema de archivos del servidor. El tamaño máximo de archivo admitido es de 8 TB a 128 TB.
Largo Datos de caracteres de longitud variable hasta 2 G
filo Un sistema numérico de base 64 que representa la dirección única de la fila en la tabla

Ejemplo

Antes de agregar la columna

Desc emp

Alterar tabla agregar columna

alter table emp add(ext varchar2(10));

Después de agregar la columna

Desc emp

Ahora suelta esa columna

alter table emp drop column ext;

Espero que le guste el artículo sobre Cómo modificar la columna de adición de tablas en Oracle

Artículos relacionados
sintaxis de creación de tabla de Oracle
Alterar tabla en Oracle
alterar movimiento de tabla
Declaración DROP TABLE ORACLE
verificar el tamaño de la tabla de Oracle
ora-20005:las estadísticas del objeto son bloqueado