SQL IS NULL: Operador lógico

El operador SQL IS NULL se usa para verificar si una columna tiene un valor NULL. Retorna verdadero si el valor de la columna es NULL y falso si no lo es.

Los operadores de comparación como =, < o <> no se pueden usar para verificar valores NULL. En su lugar, usamos los siguientes operadores.

  • is null
  • Not is null (negación de valores NULL)

SQL no permite dejar ningún campo de una columna sin valor. lógicamente, las columnas de la tabla sin valores son campos vacíos. En realidad, los campos que tienen un valor no especificado se consideran NULL. Cuando no ingresamos nada en una celda de la tabla, SQL asume que hay un valor que, en este momento, se desconoce pero que algún día podría conocerse y colocarse en este campo.

Sintaxis del operador SQL is null

En SQL IS NULL es un operador lógico que le permite filtrar filas con datos faltantes de sus resultados. En algunas tablas pueden aparecer valores nulos o celdas sin datos. IS NULL le permite elegir filas en una columna dada que están vacías.

A continuación se muestra la sintaxis de IS NULL:

SELECT columna1, columna2, columna3, ... , columnaN
FROM tabla
WHERE columnaN IS NULL

Ejemplo IS NULL con instrucción SELECT

Podemos usar el operador SQL IS NULL con una declaración SELECT para filtrar filas en función de si una columna en particular contiene un valor NULL o no. En la siguiente consulta, mostraremos cómo se usará la condición IS NULL para seleccionar filas si el campo especificado es NULL.

Para este y otros ejemplos, utilizaremos la tabla clientes con los siguientes datos:

sql-is-null
Ingrese la siguiente instrucción SQL:

SELECT *
FROM Clientes
WHERE PAIS  IS NULL;

Al ejecutar la consulta anterior, generará una salida como se muestra a continuación:

IDNOMBREAPELLIDOPAIS
004PedroPérezNULL
005AndersonPaigeNULL

Solo muestra los datos de los clientes que no tienen país en la base de datos

Ejemplo en SQL IS NULL con función COUNT()

También podemos usar el operador SQL IS NULL con la función COUNT() en SQL para contar el número de filas que contienen valores NULL en una columna en particular. Esta función se utiliza junto con el comando SQL SELECT.

La siguiente consulta determina que el recuento de filas tiene un campo en blanco (NULL) en la columna Precio.

SELECT COUNT(*)
FROM Clientes
WHERE PAIS IS NULL

Al ejecutar la consulta anterior, generará una salida como se muestra a continuación:

+----------+
| COUNT(*) |
+----------+
|        2 |
+----------+

Ejemplo IS NULL con instrucción UPDATE

Podemos usar la declaración UPDATE con el operador SQL IS NULL  para establecer el valor de una columna en NULL para todas las filas que sean igual a una condición. Considere la siguiente tabla «fruta» en nuestra base de datos y ejecute la siguiente consulta para ver cómo se usa la declaración de actualización.

UPDATE Clientes SET PAIS= ´España´
 WHERE NOMBRE=´PEDRO´ AND PAIS IS NULL;

Para comprobar si la tabla se ha actualizado o no, ejecute la siguiente consulta.

SELECT *
FROM Cliente;

Al ejecutar la consulta anterior, generará el siguiente resultado como se muestra a continuación:

IDNOMBREAPELLIDOPAIS
001JacksonJoeEspaña
002FelipeZaragozaMéxico
003JaneSmithEstados unidos
004PedroPérezEspaña
005AndersonPaigeNULL
006JohnsonHernándezPerú

Ejemplo en SQL IS NULL con instrucción DELETE

También podemos usar la declaración DELETE con el operador IS NULL para eliminar todas las filas que contienen valores NULL en una columna en particular. Ejecute la siguiente consulta para observar cómo vamos a utilizar la declaración de eliminación con nulo.

DELETE FROM Clientes 
WHERE PAIS IS NULL;

Ejecute la siguiente consulta para comprobar si la tabla se ha modificado o no.

SELECT *
FROM Clientes

Al ejecutar la consulta anterior, generará el siguiente resultado como se muestra a continuación:

IDNOMBREAPELLIDOPAIS
001JacksonJoeEspaña
002FelipeZaragozaMéxico
003JaneSmithEstados unidos
006JohnsonHernándezPerú

Puntos importantes

  • IS NULL es un operador de comparación utilizado en la cláusula WHERE para filtrar registros basados en si un campo es NULL o no.
  • No se puede utilizar para comparar dos valores NULL entre sí.
  • Puede afectar el rendimiento de consultas debido a la indexación limitada.
  • La definición de columna (NULL o NOT NULL) afecta el comportamiento de «IS NULL».
  • Al utilizar funciones, debes considerar cómo manejan los valores NULL. «columna = NULL» puede no funcionar correctamente en todas las implementaciones de SQL.

Deja un comentario