Giá trị NULL trong SQLite

Giá trị NULL trong SQLite là khái niệm được sử dụng để biểu diễn một giá trị bị khuyết thiếu. Một giá trị NULL trong một bảng là một giá trị trong một trường và bị bỏ trống.

Một trường với một giá trị NULL là một trường không có giá trị nào. Nó là thực sự quan trọng để hiểu rằng một giá trị NULL là khác một giá trị 0 (zero value) hoặc một trường mà chứa các dấu cách.

Cú pháp cơ bản của sử dụng NULL trong khi tạo một bảng như sau:

SQLite> CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Ở đây, NOT NULL xác định rằng cột nên luôn luôn chấp nhận một giá trị tường minh của kiểu dữ liệu đã cho. Có hai cột mà chúng ta đã không sử dụng NOT NULL, nghĩa là những cột này có thể là NULL.

Một trường với một giá trị NULL là đã bị bỏ trống trong khi tạo bản ghi.

Ví dụ

Giá trị NULL có thể tạo các vấn đề trong khi chọn lựa dữ liệu, tuy nhiên, bởi vì khi so sánh với một giá trị không biết với bất kỳ giá trị nào khác, kết quả là luôn luôn chưa biết trước và không được bao trong các kết quả cuối cùng. Bạn theo dõi bảng COMPANY có các bản ghi sau:

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

Bây giờ chúng ta sử dụng lệnh UPDATE để thiết lập các giá trị khác null là NULL như sau:

sqlite> UPDATE COMPANY SET ADDRESS = NULL, SALARY = NULL where ID IN(6,7);

Bây giờ, bảng COMPANY này sẽ có các bản ghi:

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

Tiếp theo, bạn theo dõi cách sử dụng của toán tử IS NOT NULL để liệt kê tất cả bản ghi có SALARY không là Null:

sqlite> SELECT  ID, NAME, AGE, ADDRESS, SALARY
        FROM COMPANY
        WHERE SALARY IS NOT NULL;

Lệnh SQLite trên sẽ cho kết quả:

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

Sau đây là cách sử dụng của toán tử IS NULL trong SQLite. Ví dụ này sẽ liệt kê tất cả bản ghi có SALARY là NULL:

sqlite> SELECT  ID, NAME, AGE, ADDRESS, SALARY
        FROM COMPANY
        WHERE SALARY IS NULL;

Lệnh SQLite trên sẽ cho kết quả sau:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
6           Kim         22
7           James       24

Bình luận