SQLite - wartości NULL
SQLite NULLto termin używany do reprezentowania brakującej wartości. Wartość NULL w tabeli to wartość w polu, które wydaje się puste.
Pole z wartością NULL to pole bez wartości. Bardzo ważne jest, aby zrozumieć, że wartość NULL różni się od wartości zerowej lub pola zawierającego spacje.
Składnia
Poniżej znajduje się podstawowa składnia using NULL podczas tworzenia tabeli.
SQLite> CREATE TABLE COMPANY(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);
Tutaj, NOT NULLoznacza, że kolumna powinna zawsze akceptować jawną wartość danego typu danych. Istnieją dwie kolumny, w których nie użyliśmy wartości NOT NULL, co oznacza, że te kolumny mogą mieć wartość NULL.
Pole o wartości NULL to takie, które zostało puste podczas tworzenia rekordu.
Przykład
Wartość NULL może powodować problemy podczas wybierania danych, ponieważ podczas porównywania nieznanej wartości z jakąkolwiek inną wartością wynik jest zawsze nieznany i nie jest uwzględniany w wynikach końcowych. Rozważ poniższą tabelę FIRMA z następującymi zapisami -
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
Użyjmy instrukcji UPDATE, aby ustawić kilka wartości dopuszczających wartość null jako NULL w następujący sposób -
sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);
Teraz tabela COMPANY będzie miała następujące rekordy.
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
Następnie zobaczmy użycie IS NOT NULL operator, aby wyświetlić wszystkie rekordy, w których SALARY nie ma wartości NULL.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NOT NULL;
Powyższa instrukcja SQLite da następujący wynik -
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
Poniżej przedstawiono użycie IS NULL operator, który wyświetli listę wszystkich rekordów, w których SALARY ma wartość NULL.
sqlite> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM COMPANY
WHERE SALARY IS NULL;
Powyższa instrukcja SQLite da następujący wynik.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22
7 James 24