Cómo realizar actualizaciones e inserciones de NULL en SQL

Es importante manejar adecuadamente los valores NULL al operar bases de datos SQL. NULL indica que los datos están ausentes, son desconocidos o no se aplican. En este artículo, explicaremos los pasos específicos para realizar actualizaciones e inserciones de valores NULL en SQL, y abordaremos las consideraciones importantes y trampas comunes.

Índice

Concepto básico de NULL

En SQL, NULL indica la ausencia de datos o valores desconocidos. A diferencia de otros tipos de datos, NULL representa un estado en el que “no existe un valor”. Por ejemplo, cuando no se ingresa un dato en una columna de una tabla, el valor de esa columna será NULL. NULL requiere un manejo especial, particularmente en su tratamiento con operadores de comparación y funciones.

Cómo insertar valores NULL

El uso de la sentencia INSERT para introducir valores NULL en una base de datos es muy sencillo. Específicamente, se asigna NULL a la columna en la que se quiere insertar. A continuación, mostramos un ejemplo.

Sentencia INSERT básica

En el siguiente ejemplo, se inserta un nuevo registro en la tabla employees. En este caso, se inserta NULL en la columna middle_name.

INSERT INTO employees (first_name, last_name, middle_name)
VALUES ('John', 'Doe', NULL);

Insertar NULL en una columna específica

También es posible insertar valores en columnas específicas, dejando otras columnas como NULL.

INSERT INTO employees (first_name, last_name)
VALUES ('Jane', 'Smith');

En este caso, la columna middle_name se insertará automáticamente como NULL.

Cómo actualizar valores NULL

El uso de la sentencia UPDATE permite actualizar datos existentes a valores NULL. Para actualizar una columna específica de un registro existente con NULL, se asigna NULL a esa columna en la cláusula SET.

Sentencia UPDATE básica

En el siguiente ejemplo, la columna middle_name de la tabla employees se actualiza a NULL.

UPDATE employees
SET middle_name = NULL
WHERE employee_id = 1;

Esta sentencia establece el valor de la columna middle_name en NULL para el registro cuyo employee_id es 1.

Actualizar varias columnas a NULL

También es posible actualizar varias columnas a valores NULL.

UPDATE employees
SET middle_name = NULL, last_name = NULL
WHERE employee_id = 2;

En este caso, las columnas middle_name y last_name del registro cuyo employee_id es 2 se actualizan a NULL.

Consideraciones importantes al manejar NULL

Al manejar valores NULL, hay varias consideraciones importantes. Si no se comprenden bien, pueden surgir errores inesperados o inconsistencias en los datos.

Comparación con NULL

Debido a que NULL es un valor especial, no puede compararse usando los operadores habituales (=, !=, etc.). Para comparar con valores NULL, se utilizan IS NULL o IS NOT NULL.

SELECT * FROM employees
WHERE middle_name IS NULL;

NULL en funciones y operaciones

Cualquier cálculo que incluya un valor NULL tendrá un resultado de NULL. Por ejemplo, NULL + 5 será NULL. Para evitar NULL, se puede usar la función COALESCE para especificar un valor predeterminado.

SELECT COALESCE(middle_name, 'N/A') AS middle_name
FROM employees;

Valor predeterminado para NULL

Si no se establece un valor predeterminado para una columna, al insertar un nuevo registro, esa columna recibirá el valor NULL. Es posible evitar esto estableciendo un valor predeterminado para la columna.

ALTER TABLE employees
ALTER COLUMN middle_name SET DEFAULT 'Unknown';

Cómo verificar valores NULL

A continuación, se presenta cómo verificar los valores NULL en una tabla mediante la sentencia SELECT. Verificar los valores NULL de manera efectiva puede ayudar a mantener la coherencia de los datos.

Verificación básica de NULL

Para buscar registros que contengan NULL en una columna específica, se utiliza IS NULL.

SELECT * FROM employees
WHERE middle_name IS NULL;

Esta consulta devolverá todos los registros en los que la columna middle_name es NULL.

Verificación de valores que no son NULL

Para buscar registros en los que una columna específica no sea NULL, se utiliza IS NOT NULL.

SELECT * FROM employees
WHERE middle_name IS NOT NULL;

Esta consulta devolverá todos los registros en los que la columna middle_name no sea NULL.

Búsqueda compuesta con condiciones que incluyen NULL

También es posible combinar varias condiciones para buscar datos que incluyan valores NULL.

SELECT * FROM employees
WHERE department_id = 3 AND middle_name IS NULL;

Esta consulta devolverá los registros en los que department_id es 3 y middle_name es NULL.

Conclusión

La actualización e inserción de valores NULL en SQL son operaciones clave en la gestión de bases de datos. NULL representa un estado de “ausencia de valor”, y se puede manejar fácilmente utilizando las sentencias INSERT y UPDATE. Sin embargo, es necesario tener especial cuidado al comparar y utilizar NULL en funciones. Administrar correctamente los valores NULL ayudará a mantener la coherencia y calidad de los datos. Usa los métodos descritos en este artículo para realizar operaciones en SQL de manera más efectiva.

Índice