SQL - NULL Values: Understanding the Unknown

Xin chào các bạn tương lai của các phù thủy cơ sở dữ liệu! Hôm nay, chúng ta sẽ cùng nhau khám phá một khía cạnh thú vị của SQL mà thường làm mới手的 người bối rối - các giá trị NULL. Đừng lo lắng nếu bạn chưa bao giờ viết một dòng mã trước đây; tôi sẽ hướng dẫn bạn qua khái niệm này từng bước một, giống như tôi đã làm cho hàng trăm sinh viên trong những năm dạy học của mình. Vậy, hãy lấy một ly đồ uống yêu thích của bạn và cùng tôi bắt đầu cuộc phiêu lưu SQL này nhé!

SQL - NULL Values

What is a NULL Value?

Trước khi chúng ta đi vào chi tiết, hãy hiểu rõ giá trị NULL thực sự có nghĩa là gì trong SQL. Hãy tưởng tượng bạn đang điền vào một biểu mẫu, và có một mục hỏi tên đệm của bạn. Nhưng nếu bạn không có tên đệm thì sao? Bạn không thể viết "không có tên đệm" vì điều đó không chính xác - bạn không nói rằng bạn có một tên đệm là "không có tên đệm". Bạn đơn giản là để nó trống. Mục trống đó, các bạn ơi, chính là điều mà NULL đại diện trong SQL.

Trong SQL, NULL là một dấu hiệu đặc biệt được sử dụng để chỉ ra rằng một giá trị dữ liệu không tồn tại trong cơ sở dữ liệu. Nó không phải là số không, không phải là chuỗi trống, nó là sự vắng mặt của bất kỳ giá trị nào. Hãy nghĩ về nó như cách SQL nói, "Tôi không biết" hoặc "Th thông tin này không có."

Creating a Table without NULL Values

Bây giờ chúng ta đã hiểu NULL là gì, hãy xem cách chúng ta có thể tạo một bảng không cho phép các giá trị NULL. Điều này đặc biệt hữu ích khi bạn có dữ liệu mà bạnAbsolutely phảihave cho mỗi bản ghi.

Example 1: Creating a Student Table

CREATE TABLE Students (
StudentID INT NOT NULL,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Age INT NOT NULL,
Email VARCHAR(100)
);

Trong ví dụ này, chúng ta đang tạo một bảng叫做 "Students". Hãy phân tích những gì đang xảy ra:

  1. StudentID, FirstName, LastName, và Age đều được宣布为 NOT NULL. Điều này có nghĩa là các trường này phải có giá trị; chúng không thể để trống.
  2. Trường Email không có NOT NULL, điều này có nghĩa là điều đó ổn nếu một học sinh không cung cấp địa chỉ email.

Bằng cách sử dụng NOT NULL, chúng ta đang告诉 cơ sở dữ liệu của mình, "Hey, chúng tôiAbsolutely cần thông tin này cho mỗi học sinh. Không có lý do gì!"

Updating NULL Values in a Table

Đôi khi, bạn có thể gặp phải các giá trị NULL trong bảng của mình mà bạn muốn cập nhật. Hãy xem cách chúng ta có thể làm điều đó.

Example 2: Updating NULL Email Addresses

Hãy tưởng tượng chúng ta nhận ra rằng chúng ta cần địa chỉ email cho tất cả học sinh, và chúng ta muốn cập nhật những địa chỉ email hiện tại là NULL.

UPDATE Students
SET Email = '[email protected]'
WHERE Email IS NULL;

Truy vấn này thực hiện các thao tác sau:

  1. Nó xem xét bảng Students.
  2. Đối với bất kỳ bản ghi nào mà Email IS NULL (nhớ, chúng ta không thể sử dụng = NULL!), nó đặt email thành '[email protected]'.

Điều này giống như nói, "Đối với bất kỳ học sinh nào chưa cung cấp email, hãy sử dụng địa chỉ email tạm thời này."

Deleting Records with NULL Values

Đôi khi, bạn có thể muốn xóa các bản ghi có giá trị NULL trong một số trường. Hãy xem cách chúng ta có thể làm điều đó.

Example 3: Deleting Students without Age Information

DELETE FROM Students
WHERE Age IS NULL;

Truy vấn này sẽ xóa bất kỳ bản ghi học sinh nào mà trường Age là NULL. Điều này giống như nói, "Nếu chúng tôi không biết tuổi của một học sinh, hãy xóa bản ghi của họ khỏi cơ sở dữ liệu của chúng tôi."

Hãy cẩn thận với các thao tác như này! Luôn chắc chắn rằng bạn thực sự muốn xóa các bản ghi này trước khi chạy truy vấn.

Working with NULL in WHERE Clauses

Một điều khó khăn về các giá trị NULL là bạn không thể sử dụng các toán tử so sánh bình thường với chúng. Hãy xem cách để kiểm tra đúng các giá trị NULL trong các mệnh đề WHERE.

Example 4: Finding Students with Missing Email Addresses

SELECT FirstName, LastName
FROM Students
WHERE Email IS NULL;

Truy vấn này sẽ cho chúng ta danh sách tất cả các học sinh chưa cung cấp địa chỉ email. Lưu ý chúng ta sử dụng IS NULL thay vì = NULL. Đây là một lỗi phổ biến mà ngay cả các nhà lập trình có kinh nghiệm đôi khi cũng mắc phải!

NULL and Aggregate Functions

NULL giá trị cũng có thể ảnh hưởng đến cách các hàm tổng hợp hoạt động. Hãy xem một ví dụ.

Example 5: Calculating Average Age

SELECT AVG(Age) AS AverageAge
FROM Students;

Truy vấn này tính toán tuổi trung bình của tất cả học sinh. Đây là phần thú vị: các giá trị NULL hoàn toàn bị bỏ qua trong phép toán này. Vậy nếu bạn có 10 học sinh, nhưng chỉ có 8 người có tuổi được điền đầy đủ, tuổi trung bình sẽ được tính dựa trên 8 giá trị đó.

Conclusion

Và thế là chúng ta đã cùng nhau khám phá xong vùng đất của các giá trị NULL trong SQL. Chúng ta đã thấy cách tạo bảng không cho phép NULL, cách cập nhật và xóa bản ghi có giá trị NULL, và cách làm việc với NULL trong các truy vấn.

Nhớ rằng, NULL không phải là số không, không phải là chuỗi trống, nó là sự vắng mặt của một giá trị. Nó là cách SQL耸肩 và nói, "Tôi không biết." Và bây giờ, bạn đã biết cách xử lý những tình huống "Tôi không biết" này như một chuyên gia!

Tiếp tục thực hành với các khái niệm này, và trước khi bạn nhận ra, bạn sẽ tự tin điều hướng trong thế giới cơ sở dữ liệu. Chúc các bạn thành công với việc truy vấn!

Credits: Image by storyset