Oracle

Oracle NOT NULL: Alter Table Column Not Null for Data Integrity

En este tutorial, exploraremos en detalle cómo utilizar la restricción NOT NULL de Oracle para garantizar la integridad de los datos en una tabla. La restricción NOT NULL es una herramienta poderosa que nos permite especificar que una columna no puede aceptar valores NULL. Esta restricción se puede aplicar tanto en el momento de la creación de una tabla como también posteriormente mediante la instrucción ALTER TABLE.

Definición de restricción NOT NULL

La restricción NOT NULL en Oracle es una cláusula que se utiliza para indicar que una columna no puede contener valores NULL. Esto significa que se debe proporcionar un valor para esta columna en cada registro que se inserte o modifique en la tabla. Al utilizar esta restricción, podemos garantizar la integridad de los datos y evitar la presencia de valores desconocidos o no válidos en nuestra base de datos.

La restricción NOT NULL se puede aplicar en el momento de la creación de una tabla utilizando la instrucción CREATE TABLE. También es posible añadir la restricción a una tabla existente mediante la instrucción ALTER TABLE. De esta manera, podemos controlar y modificar las restricciones en cualquier momento, según nuestras necesidades.

Aplicación de la restricción NOT NULL

Para aplicar la restricción NOT NULL durante la creación de una tabla, debemos incluir la cláusula NOT NULL después de la definición de cada columna que deseamos que sea obligatoria. Por ejemplo:

CREATE TABLE clientes (
  id_cliente NUMBER,
  nombre VARCHAR2(50) NOT NULL,
  direccion VARCHAR2(100) NOT NULL,
  telefono VARCHAR2(20)
);

En este ejemplo, las columnas «nombre» y «direccion» tienen la restricción NOT NULL. Esto significa que al insertar datos en la tabla «clientes», no podríamos proporcionar valores NULL para estas columnas. Si intentamos hacerlo, Oracle mostrará un error y no se permitirá la inserción.

Recomendado:  ¿Cómo usar CREATE VIEW de Oracle para crear vistas?

Si deseamos aplicar la restricción NOT NULL a una columna en una tabla existente, podemos utilizar la instrucción ALTER TABLE. Por ejemplo:

ALTER TABLE clientes
MODIFY telefono VARCHAR2(20) NOT NULL;

En este caso, estamos modificando la tabla «clientes» para hacer que la columna «telefono» no acepte valores NULL. Si había registros previamente en la tabla con valores NULL para esta columna, se producirá un error y la modificación no se realizará hasta que se corrija la situación.

Ejemplos de restricciones NOT NULL en Oracle

A continuación, presentamos algunos ejemplos que ilustran cómo utilizar la restricción NOT NULL en Oracle:

Ejemplo 1:

CREATE TABLE empleados (
  id_empleado NUMBER NOT NULL,
  nombre VARCHAR2(50) NOT NULL,
  salario NUMBER
);

En este caso, estamos creando una tabla «empleados» con la restricción NOT NULL en las columnas «id_empleado» y «nombre». Esto significa que cada empleado debe tener un ID y un nombre, y no se permitirán valores NULL para estas columnas.

Ejemplo 2:

ALTER TABLE pedidos
MODIFY fecha_entrega DATE NOT NULL;

En este ejemplo, estamos modificando la tabla «pedidos» para hacer que la columna «fecha_entrega» no pueda contener valores NULL. Esto asegurará que cada pedido tenga una fecha de entrega asignada y que no se permitan registros con información incompleta.

Ejemplo 3:

CREATE TABLE productos (
  codigo_producto NUMBER NOT NULL,
  nombre VARCHAR2(100),
  precio NUMBER
);

ALTER TABLE productos
ADD CONSTRAINT productos_pk PRIMARY KEY(codigo_producto);

En este caso, estamos creando una tabla «productos» con una restricción NOT NULL en la columna «codigo_producto». Además, también estamos añadiendo una restricción de clave primaria en esta columna mediante la cláusula PRIMARY KEY. Esto garantiza que cada producto tenga un código único y no se permitirán valores NULL en esta columna.

Recomendado:  Oracle INTERSECT: Ejemplos prácticos y explicados | SQL

Eliminación de la restricción NOT NULL

Si en algún momento deseamos permitir que una columna acepte valores NULL y eliminar la restricción NOT NULL en Oracle, podemos utilizar la instrucción ALTER TABLE.

Por ejemplo, supongamos que tenemos la siguiente tabla:

CREATE TABLE empleados (
  id_empleado NUMBER NOT NULL,
  nombre VARCHAR2(50),
  salario NUMBER
);

Si queremos permitir que la columna «nombre» pueda contener valores NULL, podemos hacerlo de la siguiente manera:

ALTER TABLE empleados
MODIFY nombre VARCHAR2(50) NULL;

Con esta instrucción, estamos modificando la columna «nombre» de la tabla «empleados» para permitir valores NULL. Ahora, los registros existentes y futuros podrán tener el campo «nombre» sin información.

Es importante tener en cuenta que si hay registros previos en la tabla que tienen valores NULL para la columna «nombre», no se producirá ningún error. Sin embargo, si más tarde intentamos insertar un registro sin proporcionar un valor para «nombre», se nos permitirá hacerlo.

La eliminación de una restricción NOT NULL en Oracle se logra utilizando la instrucción ALTER TABLE con la cláusula NULL para permitir valores NULL en la columna deseada.

Autor

osceda@hotmail.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *