Khi sử dụng giao diện dòng lệnh SQLite (CLI), theo mặc định, bất cứ khi nào truy vấn trả về giá trị rỗng, đầu ra là chuỗi trống (''
).
Chúng tôi có thể thay đổi điều này bằng cách sử dụng -nullvalue
tùy chọn dòng lệnh khi khởi chạy SQLite.
Chúng tôi cũng có thể sử dụng .nullvalue
lệnh dot nếu chúng ta đã ở trong SQLite CLI.
-nullvalue
Tùy chọn
Chúng ta có thể sử dụng -nullvalue
khi khởi chạy SQLite.
Đây là một ví dụ:
sqlite3 -nullvalue null
Trong trường hợp này, bất cứ khi nào tôi gặp giá trị null, văn bản null
sẽ được trả lại. Tôi đã sử dụng null
trong ví dụ này, nhưng đây có thể là bất kỳ văn bản nào.
Khởi chạy SQLite mà không có tùy chọn đó sẽ đặt -nullvalue
vào chuỗi trống.
.nullvalue
Lệnh chấm
Nếu chúng ta đã ở trong SQLite, chúng ta không cần phải thoát và khởi chạy lại để thay đổi nullvalue
của chúng ta cài đặt. Chúng ta có thể sử dụng .nullvalue
lệnh dot thay vào đó
Ví dụ:
.nullvalue null
Chỉ cần nói rõ, điều đó cần được chạy từ bên trong vỏ lệnh SQLite (tức là sau khi bạn đã khởi chạy SQLite).
Một lần nữa, chúng ta có thể sử dụng bất kỳ văn bản nào ở đây để biểu thị các giá trị rỗng.
Ví dụ
Hãy đặt nullvalue
trong khi khởi chạy SQLite:
sqlite3 -nullvalue n/a
Bây giờ, bất cứ khi nào giá trị null được trả về, chuỗi n/a
sẽ được xuất ra.
Hãy làm điều đó:
SELECT 1/0;
Kết quả:
+-----+ | 1/0 | +-----+ | n/a | +-----+
Chia một số cho 0 trả về giá trị rỗng. Trong trường hợp của chúng tôi, chúng tôi nhận được n/a
, chính xác như mong đợi.
Bây giờ chúng ta hãy thay đổi nullvalue
của chúng tôi cài đặt:
.nullvalue null
Và chạy lại truy vấn:
SELECT 1/0;
Kết quả:
+------+ | 1/0 | +------+ | null | +------+
Bây giờ chúng ta nhận được chuỗi null
bất cứ khi nào giá trị null được trả về.
Cài đặt mặc định
Giả sử chúng ta khởi chạy SQLite mà không đặt nullvalue
:
sqlite3
Tại đây, chúng tôi mở thiết bị đầu cuối hoặc dấu nhắc lệnh của máy tính và nhập lệnh để khởi chạy SQLite (tức là sqlite3
) mà không chỉ định bất kỳ tùy chọn nào.
Bây giờ, khi chúng tôi chạy một truy vấn trả về giá trị null, chúng tôi nhận được chuỗi trống:
SELECT 1/0;
Kết quả:
+-----+ | 1/0 | +-----+ | | +-----+
Đó là kết quả mặc định cho các giá trị null. Đó là những gì chúng ta nhận được khi không sử dụng -nullvalue
tùy chọn hoặc .nullvalue
lệnh dấu chấm.