SQLite - Valores NULL
SQLite NULLes el término utilizado para representar un valor perdido. Un valor NULO en una tabla es un valor en un campo que parece estar en blanco.
Un campo con un valor NULL es un campo sin valor. Es muy importante comprender que un valor NULL es diferente a un valor cero o un campo que contiene espacios.
Sintaxis
A continuación se muestra la sintaxis básica del uso NULL mientras creaba una mesa.
SQLite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
Aquí, NOT NULLsignifica que la columna siempre debe aceptar un valor explícito del tipo de datos dado. Hay dos columnas en las que no usamos NOT NULL, lo que significa que estas columnas podrían ser NULL.
Un campo con un valor NULO es uno que se ha dejado en blanco durante la creación del registro.
Ejemplo
El valor NULO puede causar problemas a la hora de seleccionar datos, ya que al comparar un valor desconocido con cualquier otro valor, el resultado siempre es desconocido y no se incluye en los resultados finales. Considere la siguiente tabla, EMPRESA con los siguientes registros:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
Usemos la instrucción UPDATE para establecer algunos valores anulables como NULL de la siguiente manera:
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
Ahora, la tabla EMPRESA tendrá los siguientes registros.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22
7 James 24
A continuación, veamos el uso de IS NOT NULL operador para enumerar todos los registros donde SALARIO no es NULO.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NOT NULL;
La declaración SQLite anterior producirá el siguiente resultado:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
A continuación se muestra el uso de IS NULL operador, que listará todos los registros donde SALARIO es NULO.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
La declaración SQLite anterior producirá el siguiente resultado.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22
7 James 24