SQL - Null Functions

Xin chào các bạn đam mê SQL! Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới kỳ diệu của các hàm Null trong SQL. Là người thầy máy tính gần gũi của bạn, tôi rất vui mừng được hướng dẫn các bạn trong hành trình này. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - chúng ta sẽ cùng nhau bước từng bước, và trước khi bạn nhận ra, bạn sẽ xử lý các giá trị NULL như một chuyên gia!

SQL - Null Functions

SQL NULL Functions

Trước khi chúng ta nhảy vào các hàm cụ thể, hãy nói về từ khóa NULL thực sự có nghĩa gì trong SQL. Hãy tưởng tượng bạn đang điền vào một mẫu đơn, và có một mục là "tên đệm." Nếu bạn không có tên đệm, bạn có thể để trống nó. Trong SQL, mục trống đó được biểu thị bằng NULL. Nó không phải là zero, không phải là chuỗi trống - nó là sự thiếu vắng của một giá trị.

Việc làm việc với các giá trị NULL có thể rất phức tạp. Đó là lúc các hàm NULL của chúng ta phát huy tác dụng. Chúng giúp chúng ta quản lý các giá trị thiếu vắng trong cơ sở dữ liệu của mình. Hãy cùng khám phá từng hàm một.

The ISNULL() Function

Hàm ISNULL() giống như người bạn đáng tin cậy luôn có kế hoạch dự phòng. Nó kiểm tra xem một giá trị có phải là NULL hay không, và nếu có, nó thay thế nó bằng một giá trị khác do bạn chọn.

Hãy xem một ví dụ:

SELECT ISNULL(middle_name, 'No Middle Name') AS middle_name
FROM students;

Trong ví dụ này, chúng ta đang xem bảng sinh viên. Nếu một sinh viên không có tên đệm (NULL), truy vấn của chúng ta sẽ hiển thị 'No Middle Name' thay vào đó. Đó giống như có một diễn viên thay thế cho một vai chính vắng mặt!

The COALESCE() Function

COALESCE giống như một trò chơi "ném bóng nóng" với các giá trị NULL. Nó kiểm tra một danh sách các giá trị và trả về giá trị không phải NULL đầu tiên mà nó tìm thấy. Nếu tất cả các giá trị đều là NULL, nó trả về NULL.

Dưới đây là cách nó hoạt động:

SELECT COALESCE(phone, email, 'No Contact Info') AS contact
FROM customers;

Truy vấn này kiểm tra số điện thoại trước tiên. Nếu nó không phải là NULL, tốt lắm! Nếu nó là NULL, nó chuyển sang email. Nếu cả hai đều là NULL, nó chọn 'No Contact Info'. Đó giống như thử từng chìa khóa cho đến khi một cái khớp với ổ khóa!

The NULLIF() Function

NULLIF là "người kiểm tra sự bình đẳng" trong gia đình các hàm NULL của chúng ta. Nó so sánh hai biểu thức và trả về NULL nếu chúng bằng nhau. Nếu chúng không bằng nhau, nó trả về biểu thức đầu tiên.

Hãy xem nó trong hành động:

SELECT NULLIF(quantity, 0) AS adjusted_quantity
FROM inventory;

Truy vấn này rất hữu ích khi chúng ta muốn tránh lỗi chia cho zero. Nếu số lượng là 0, NULLIF sẽ trả về NULL thay vào đó. Đó giống như có một lưới an toàn cho các phép toán của bạn!

The IFNULL() Function

IFNULL là cousin đơn giản hơn của COALESCE. Nó lấy hai biểu thức và trả về biểu thức đầu tiên nếu nó không phải là NULL. Nếu biểu thức đầu tiên là NULL, nó trả về biểu thức thứ hai.

Dưới đây là một ví dụ:

SELECT IFNULL(comment, 'No comment provided') AS feedback
FROM reviews;

Truy vấn này kiểm tra xem có bình luận hay không. Nếu không có (NULL), nó cung cấp một thông báo mặc định. Đó giống như có một người chủ lịch sự luôn có điều gì đó để nói, ngay cả khi khách hàng im lặng!

Bây giờ, hãy tóm tắt tất cả các hàm này trong một bảng tiện lợi:

Hàm Mô tả Ví dụ
ISNULL() Thay thế NULL bằng một giá trị xác định ISNULL(middle_name, 'No Middle Name')
COALESCE() Trả về giá trị không phải NULL đầu tiên trong danh sách COALESCE(phone, email, 'No Contact Info')
NULLIF() Trả về NULL nếu hai biểu thức bằng nhau NULLIF(quantity, 0)
IFNULL() Trả về biểu thức đầu tiên nếu nó không phải là NULL, ngược lại trả về biểu thức thứ hai IFNULL(comment, 'No comment provided')

Nhớ rằng, việc xử lý các giá trị NULL rất quan trọng trong quản lý cơ sở dữ liệu. Đó giống như một thám tử - bạn cần biết khi nào một thứ bị thiếu và cách xử lý nó. Các hàm này là những công cụ đáng tin cậy trong cuộc điều tra của bạn!

Khi chúng ta kết thúc, tôi muốn chia sẻ một câu chuyện nhỏ từ kinh nghiệm giảng dạy của mình. Tôi từng có một học sinh rất sợ các giá trị NULL. Anh ấy sẽ tránh chúng ở mọi giá, điền đầy các mục bằng zero hoặc chuỗi trống. Sau khi học về các hàm NULL này, anh ấy thốt lên, "NULL không còn đáng sợ nữa - nó chỉ là một giá trị khác để làm việc!" Và đó chính là thái độ tôi hy vọng các bạn sẽ có sau bài học này.

Thực hành sử dụng các hàm này trong các truy vấn của bạn. Thử nghiệm với chúng, xem chúng hoạt động như thế nào với dữ liệu khác nhau. Nhớ rằng, trong SQL cũng như trong cuộc sống, việc có giá trị thiếu vắng đôi khi là bình thường - điều quan trọng là cách bạn xử lý chúng!

Chúc các bạn query vui vẻ, và may mắn trong việc xử lý NULL mà không gặp lỗi!

Credits: Image by storyset