MySQL ES NULO Y NO ES NULO Tutorial con EJEMPLOS

En SQL, Null es tanto un valor como una palabra clave. Veamos primero el valor NULL:

MySQL ES NULO Y NO ES NULO

Nulo como valor

En términos simples, NULL es simplemente un marcador de posición para datos que no existen. Al realizar operaciones de inserción en tablas, habrá ocasiones en las que algunos valores de campos no estarán disponibles.

Para cumplir con los requisitos de los verdaderos sistemas de gestión de bases de datos relacionales, MySQL utiliza NULL como marcador de posición para los valores que no se han enviado. La siguiente captura de pantalla muestra cómo se ven los valores NULL en la base de datos.

Nulo como valor

Veamos ahora algunos de los conceptos básicos de NULL antes de continuar con la discusión.

  • NULL no es un tipo de datos – esto significa que no se reconoce como “int”, “date” o cualquier otro tipo de datos definido.
  • Operaciones aritmeticas que implica NULL siempre devolver NULL por ejemplo, 69 + NULO = NULO.
  • Todos Funciones agregadas afecta sólo a las filas que no tienen valores NULL.

Ahora demostremos cómo la función de conteo trata los valores nulos. Veamos el contenido actual de la tabla de miembros.

SELECT * FROM `members`;

La ejecución del script anterior nos da el siguientewing dE TRATAMIENTOS

membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Contemos todos los miembros que han actualizado su número de contacto.

SELECT COUNT(contact_number)  FROM `members`;

La ejecución de la consulta anterior nos da el siguientewing resultados.

COUNT(contact_number)
7

Nota: Los valores que son NULL no se han incluido

¿Lo que no es?

El operador lógico NOT se utiliza para probar condiciones booleanas y devuelve verdadero si la condición es falsa. El operador NOT devuelve falso si la condición probada es verdadera

Estado NO resultado del operador
¿Editas con tu equipo de forma remota? Falso
Falso ¿Editas con tu equipo de forma remota?

¿Por qué utilizar NO nulo?

Habrá casos en los que tendremos que realizar cálculos en un conjunto de resultados de una consulta y devolver los valores. Realizar operaciones aritméticas en columnas que tienen el valor NULL devuelve resultados nulos. Para evitar que sucedan tales situaciones, podemos emplear el uso de la cláusula NOT NULL para limitar los resultados en los que operan nuestros datos.

Valores NO NULOS

Supongamos que queremos crear una tabla con ciertos campos a los que siempre se les deben proporcionar valores al insertar nuevas filas en una tabla. Podemos usar la cláusula NOT NULL en un campo determinado al crear la tabla.

El ejemplo que se muestra a continuación crea una nueva tabla que contiene los datos de los empleados. Siempre se debe proporcionar el número de empleado.

CREATE TABLE `employees`(
  employee_number int NOT NULL,
  full_names varchar(255) ,
  gender varchar(6)
);

Intentemos ahora insertar un nuevo registro sin especificar el nombre del empleado y veamos qué sucede.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Al ejecutar el script anterior en MySQL Workbench se obtiene lo siguientewing error-

Valores NO NULOS

Palabras clave NULL

NULL también se puede utilizar como palabra clave al realizar operaciones booleanas en valores que incluyen NULL. La palabra clave "IS/NOT" se utiliza junto con la palabra NULL para tales fines. La sintaxis básica cuando se usa nulo como palabra clave es la siguiente

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

AQUÍ

  • "ES NULO es la palabra clave que realiza la comparación booleana. Devuelve verdadero si el valor proporcionado es NULL y falso si el valor proporcionado no es NULL.
  • "NO NULO"es la palabra clave que realiza la comparación booleana. Devuelve verdadero si el valor proporcionado no es NULL y falso si el valor proporcionado es nulo.

Veamos ahora un ejemplo práctico que utiliza la palabra clave NOT NULL para eliminar todos los valores de columna que tienen valores nulos.

Continuando con el ejemplo anterior, supongamos que necesitamos details de socios cuyo número de contacto no es nulo. Podemos ejecutar una consulta como

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

La ejecución de la consulta anterior solo proporciona registros donde el número de contacto no es nulo.

Supongamos que queremos registros de miembros donde el número de contacto sea nulo. Podemos usar seguirwing pregunta

SELECT * FROM `members` WHERE contact_number IS NULL;

La ejecución de la consulta anterior le da al miembro details cuyo número de contacto es NULL

membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Comparando valores nulos

Lógica de tres valores – realizar operaciones booleanas en condiciones que involucran NULL puede devolver “Desconocido”, “Verdadero” o “Falso”.

Por ejemplo, usando la palabra clave "ES NULO" al hacer operaciones de comparación involucrando NULL puede regresar verdadero or false. Usar otros operadores de comparación devuelve “Desconocido” (NULO).

Supongamos que comparas el número cinco con el 5.

SELECT 5 =5;

El resultado de la consulta es 1, lo que significa VERDADERO

5 =5
1

Hagamos la misma operación con NULL

SELECT NULL = NULL;
NULL = NULL
NULL

Veamos otro ejemplo

SELECT 5 > 5;
5 > 5
0

El resultado de la consulta es 0 lo que significa FALSO

Veamos el mismo ejemplo usando NULL

SELECT NULL > NULL;
NULL > NULL
NULL

Usemos la palabra clave IS NULL

SELECT 5 IS NULL;
5 IS NULL
0

El resultado de la consulta es 0, lo cual es FALSO.

SELECT NULL IS NULL;

NULL IS NULL
1

El resultado de la consulta es 1, que es VERDADERO.

Resumen

  • NULL es un marcador de posición de valor para campos de tabla opcionales.
  • MySQL trata el valor NULL de manera diferente a otros tipos de datos. Los valores NULL cuando se usan en una condición se evalúan como un valor booleano falso.
  • La operación lógica NOT se utiliza para probar valores booleanos y se evalúa como verdadera si el valor booleano es falso y falsa si el valor booleano es verdadero.
  • La cláusula NOT NULL se utiliza para eliminar valores NULL de un conjunto de resultados.
  • La realización de operaciones aritméticas con valores NULL siempre devuelve resultados NULL.
  • Los operadores de comparación como [, =, etc.] no se pueden utilizar para comparar valores NULL.