Resumen: en este tutorial, aprenderá cómo usar Oracle ALTER TABLE MODIFY
instrucción column para cambiar la definición de columnas existentes.
Para cambiar la definición de una columna en una tabla, use la ALTER TABLE MODIFY
sintaxis de columna de la siguiente manera:
La declaración es sencilla. Para modificar una columna de una tabla, debe especificar el nombre de la columna, el nombre de la tabla y la acción que desea realizar.
Oracle le permite realizar muchas acciones, pero las siguientes son las principales:
- Modificar la visibilidad de la columna
- Permitir o no permitir valores nulos
- Acortar o ampliar el tamaño de la columna
- Cambiar el valor predeterminado de una columna
- Modificar la expresión de las columnas virtuales
Para modificar varias columnas, utilice la siguiente sintaxis:
Ejemplos de columnas de Oracle ALTER TABLE MODIFY
Primero, cree una nueva tabla llamada accounts
para la demostración:
En segundo lugar, inserte algunas filas en la accounts
tabla:
En tercer lugar, verifique la operación de inserción mediante el siguiente SELECT
declaración:
A) Modificar la visibilidad de la columna ity
En Oracle Database 12c, puede definir las columnas de la tabla como invisibles o visibles. Las columnas invisibles no están disponibles para consultas como:
O declaraciones como:
en SQL * Plus.
Sin embargo, puede consultar las columnas invisibles especificándolas explícitamente en la consulta:
Por por defecto, las columnas de la tabla son visibles. Puede definir la columna invisible cuando crea la tabla o usando la ALTER TABLE MODIFY
instrucción de columna.
Por ejemplo, la siguiente instrucción hace que el full_name
columna invisible:
La siguiente declaración devuelve datos de todas las columnas de la tabla accounts
excepto la columna full_name
:
Esto se debe a que la columna full_name
es invisible.
Para cambiar un columna de invisible a visible, utilice la siguiente declaración:
B) Permitir o no permitir el ejemplo nulo
La siguiente declaración cambia la email
columna para aceptar valores no nulos:
Sin embargo, Oracle emitió el siguiente error:
Porque cuando cambiaste una columna de anulable a n on-nullable, debe asegurarse de que los datos existentes cumplan con la nueva restricción.
Para solucionar este problema, primero actualizamos los valores de la columna email
:
Tenga en cuenta que la función LOWER()
convierte una cadena a minúsculas.
Y luego cambie el restricción de la columna:
Ahora, está funcionando como se esperaba.
C) Ampliar o acortar el tamaño de un ejemplo de columna
Supongamos que queremos agregar un código internacional a los números de teléfono. Antes de hacerlo, debemos ampliar el tamaño de la columna del teléfono usando la siguiente declaración:
Ahora, podemos actualizar los números de teléfono:
La siguiente declaración verifica la actualización:
Para acortar el tamaño de una columna, asegúrese de que todos los datos de la columna se ajusten al nuevo tamaño.
Por ejemplo, intentamos acortar el tamaño de la columna phone
a 12 caracteres:
Oracle Database emitió el siguiente error:
Para solucionar esto, primero debemos eliminar el código internacional de los números de teléfono:
La función REPLACE()
reemplaza una subcadena por una nueva subcadena. En este caso, reemplaza el «+ 1-» por una cadena vacía.
Y luego acorte el tamaño de la phone
columna:
D) Modificar columna virtual
Supongamos que tenemos el nombre completo en el siguiente formato:
Para hacer esto, podemos cambiar la expresión del columna virtual full_name
de la siguiente manera:
La siguiente declaración verifica la modificación:
E) Modificar el valor predeterminado de una columna
Agreguemos una nueva columna llamada status
a la accounts
tabla con el valor predeterminado 1.
Una vez ejecutada la instrucción, los valores de la columna de estado se establecen en 1 para todas las filas existentes en la accounts
tabla.
Para cambiar el valor predeterminado o Si la columna de estado es 0, use la siguiente declaración:
Podemos agregar una nueva fila al accounts
para comprobar si el valor predeterminado de la status
columna es 0 o 1:
Datos de consulta de la accounts
tabla:
Como puede ver, el valor en la columna de estado para la cuenta con id 4 es 0 como se esperaba.
En este tutorial, ha aprendido a usar la instrucción de columna ALTER TABLE MODIFY
de Oracle para cambiar la definición de las columnas existentes en una tabla.
- ¿Le resultó útil este tutorial?
- Sí No