SQL - BOOLEAN (BIT) Operator: A Friendly Guide for Beginners

Xin chào các nhà pháp sư SQL tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình đầy thú vị vào thế giới của các toán tử Boolean trong SQL. Đừ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ẽ là người hướng dẫn đáng tin cậy của bạn, và chúng ta sẽ giải quyết chủ đề này từng bước một. Vậy, hãy lấy một ly đồ uống yêu thích của bạn, và让我们一起跃入吧!

SQL - BOOLEAN (BIT) Operator

What is a Boolean in SQL? (Gì là Boolean trong SQL?)

Trước khi chúng ta đi vào chi tiết, hãy bắt đầu với những điều cơ bản. Boolean là một kiểu dữ liệu chỉ có thể có hai giá trị có thể: TRUE hoặc FALSE. Nó giống như một công tắc đèn - nó hoặc bật hoặc tắt, không có sự lựa chọn ở giữa. Trong SQL, chúng ta sử dụng Boolean để ra quyết định và lọc dữ liệu dựa trên một số điều kiện.

Bây giờ, hãy xem cách các hệ thống cơ sở dữ liệu khác nhau xử lý Boolean.

Boolean in MySQL (Boolean trong MySQL)

MySQL, một trong những hệ thống cơ sở dữ liệu phổ biến nhất, không có kiểu BOOLEAN tích hợp sẵn. Thay vào đó, nó sử dụng TINYINT(1) để đại diện cho các giá trị Boolean. Dưới đây là một cách tóm tắt nhanh:

  • TRUE được đại diện bởi 1
  • FALSE được đại diện bởi 0

Hãy tạo một bảng đơn giản để minh họa điều này:

CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
is_enrolled TINYINT(1)
);

INSERT INTO students (id, name, is_enrolled) VALUES
(1, 'Alice', 1),
(2, 'Bob', 0),
(3, 'Charlie', 1);

Trong ví dụ này, chúng ta đã tạo một bảng students với cột is_enrolled hoạt động như một Boolean. Alice và Charlie đang tham gia (TRUE), trong khi Bob không tham gia (FALSE).

Boolean in MS SQL Server (Boolean trong MS SQL Server)

Microsoft SQL Server, mặt khác, có một kiểu dữ liệu BIT chuyên dụng cho các giá trị Boolean. Dưới đây là cách nó hoạt động:

  • TRUE được đại diện bởi 1
  • FALSE được đại diện bởi 0

Hãy tạo cùng một bảng trong MS SQL Server:

CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
is_enrolled BIT
);

INSERT INTO students (id, name, is_enrolled) VALUES
(1, 'Alice', 1),
(2, 'Bob', 0),
(3, 'Charlie', 1);

Cấu trúc tương tự, nhưng chúng ta sử dụng BIT thay vì TINYINT(1) cho cột is_enrolled.

Filtering Boolean Data (Lọc dữ liệu Boolean)

Bây giờ chúng ta đã có dữ liệu, hãy học cách lọc nó sử dụng các điều kiện Boolean. Đây là nơi phép thuật thực sự xảy ra!

Finding Enrolled Students (Tìm học sinh tham gia)

Để tìm tất cả học sinh đang tham gia, chúng ta có thể sử dụng truy vấn này:

SELECT * FROM students WHERE is_enrolled = TRUE;

Hoặc, trong MySQL:

SELECT * FROM students WHERE is_enrolled = 1;

Truy vấn này sẽ trả về Alice và Charlie, học sinh của chúng ta đang tham gia.

Finding Non-Enrolled Students (Tìm học sinh không tham gia)

Để tìm học sinh không tham gia, chúng ta có thể làm như sau:

SELECT * FROM students WHERE is_enrolled = FALSE;

Hoặc, trong MySQL:

SELECT * FROM students WHERE is_enrolled = 0;

Truy vấn này sẽ trả về Bob, học sinh không tham gia của chúng ta.

Negating Boolean Conditions (Phủ định điều kiện Boolean)

Đôi khi, chúng ta muốn tìm điều kiện ngược lại. Chúng ta có thể sử dụng toán tử NOT cho điều này:

SELECT * FROM students WHERE NOT is_enrolled;

Truy vấn này sẽ trả về tất cả học sinh không tham gia, điều này tương tự như truy vấn trước để tìm học sinh không tham gia.

Working with NULL Values (Làm việc với giá trị NULL)

Trong SQL, NULL đại diện cho một giá trị không biết hoặc thiếu. Nó không phải là TRUE cũng không phải FALSE. Khi làm việc với Boolean, chúng ta cần cẩn thận với các giá trị NULL. Hãy thêm một học sinh có tình trạng tham gia không rõ:

INSERT INTO students (id, name, is_enrolled) VALUES (4, 'David', NULL);

Bây giờ, nếu chúng ta chạy các truy vấn trước đó, David sẽ không xuất hiện trong danh sách học sinh tham gia hoặc không tham gia. Để tìm học sinh có tình trạng tham gia không rõ, chúng ta có thể sử dụng:

SELECT * FROM students WHERE is_enrolled IS NULL;

Truy vấn này sẽ trả về David, học sinh của chúng ta với tình trạng tham gia không rõ.

Updating Boolean Values (Cập nhật giá trị Boolean)

Cuối cùng, hãy xem cách cập nhật các giá trị Boolean. Giả sử Bob quyết định tham gia:

UPDATE students SET is_enrolled = TRUE WHERE name = 'Bob';

Hoặc trong MySQL:

UPDATE students SET is_enrolled = 1 WHERE name = 'Bob';

Bây giờ Bob đã tham gia!

Conclusion (Kết luận)

Và thế là bạn đã có nó, các bạn! Chúng ta đã bao gồm các nguyên tắc cơ bản của các toán tử Boolean trong SQL. Nhớ rằng, Boolean giống như những câu hỏi đơn giản có/không trong cơ sở dữ liệu của bạn. Chúng rất hữu ích cho việc lọc dữ liệu và ra quyết định trong các truy vấn của bạn.

Dưới đây là bảng tham khảo nhanh của các phương pháp chúng ta đã bao gồm:

Operation (Hoạt động) MySQL Syntax (Cú pháp MySQL) MS SQL Server Syntax (Cú pháp MS SQL Server)
Create Boolean Column (Tạo cột Boolean) TINYINT(1) BIT
Set TRUE (Đặt TRUE) 1 1
Set FALSE (Đặt FALSE) 0 0
Filter TRUE (Lọc TRUE) WHERE column = 1 WHERE column = TRUE
Filter FALSE (Lọc FALSE) WHERE column = 0 WHERE column = FALSE
Negate (Phủ định) WHERE NOT column WHERE NOT column
Check for NULL (Kiểm tra NULL) WHERE column IS NULL WHERE column IS NULL

Luyện tập các khái niệm này, và sớm bạn sẽ sử dụng các toán tử Boolean như một chuyên gia! Nhớ rằng, chìa khóa để thành thạo SQL là luyện tập và kiên nhẫn. Đừng害怕尝试不同的查询 - đó là cách chúng ta học hỏi và phát triển như những nhà lập trình.

Chúc mừng bạn, và may mắn với Boolean!

Credits: Image by storyset