Chuyển đến nội dung chính

Toán tử SQL NOT EQUAL: Hướng dẫn cho người mới bắt đầu

Khai mở sức mạnh của SQL NOT EQUAL với hướng dẫn chuyên sâu của chúng tôi. Học cách tinh chỉnh truy vấn dữ liệu với ví dụ thực hành và mẹo tối ưu để phân tích tốt hơn.
· 6 phút đọc

Khám phá cùng AI

Trong thế giới SQL, hiểu rõ các toán tử so sánh là điều cốt yếu để thao tác và phân tích dữ liệu. Trong số đó, NOT EQUAL (<> hoặc !=) đóng vai trò quan trọng trong việc lọc dữ liệu không khớp với tiêu chí đã chỉ định. Hướng dẫn này nhằm làm sáng tỏ toán tử NOT EQUAL, giúp người mới bắt đầu nắm được ý nghĩa, cách áp dụng và những điểm cần lưu ý để truy vấn SQL hiệu quả.

Giới thiệu về các toán tử so sánh

Toán tử so sánh là nền tảng trong SQL, cho phép đánh giá dữ liệu theo các điều kiện cụ thể. Chúng bao gồm toán tử bằng (=), không bằng (<>, !=), lớn hơn (>) và nhỏ hơn (<), cùng các toán tử khác. Đáng chú ý, SQL cung cấp hai ký hiệu để biểu thị không bằng: <> và !=, cả hai đều có cùng mục đích nhưng <> là lựa chọn được ưu tiên để tuân thủ tiêu chuẩn ISO.

Khám phá toán tử SQL NOT EQUAL

Vì sao dùng NOT EQUAL?

Toán tử NOT EQUAL (<> hoặc !=) được dùng để truy vấn dữ liệu từ bảng không đáp ứng một điều kiện nhất định. Nó giúp loại trừ các dòng cụ thể khỏi kết quả, khiến việc phân tích dữ liệu chính xác và phù hợp hơn.

Cú pháp và cách dùng

Cú pháp sử dụng toán tử NOT EQUAL khá đơn giản, liên quan đến việc so sánh hai biểu thức để lọc dữ liệu không khớp. Nó có thể dùng kèm nhiều mệnh đề và điều kiện khác nhau như WHERE, JOIN và HAVING. 

Mệnh đề WHERE

Có thể dùng để lọc các dòng mà giá trị của một cột không khớp với giá trị chỉ định. Ví dụ, để chọn sản phẩm trong cơ sở dữ liệu và loại trừ một ProductID cụ thể, bạn có thể dùng đoạn mã sau:

SELECT * 
FROM products 
WHERE ProductID <> 1;

Điều kiện JOIN

Có thể dùng trong mệnh đề ON để xác định điều kiện nối bảng.

SELECT e1.name, e2.name
FROM employees e1
JOIN employees e2
ON e1.manager_id != e2.employee_id;

Mệnh đề HAVING

Có thể dùng để lọc dữ liệu đã nhóm dựa trên các điều kiện tổng hợp.

SELECT department_id, COUNT(*)
FROM employees
GROUP BY department_id
HAVING COUNT(*) != 5;

Các câu lệnh CASE

Có thể dùng cho logic điều kiện để trả về kết quả cụ thể khi điều kiện thỏa mãn.

SELECT name, 
       CASE 
           WHEN department_id != 10 THEN 'Other Department' 
           ELSE 'Department 10'
       END AS department_category
FROM employees;

Câu lệnh UPDATE

Có thể dùng trong mệnh đề WHERE để chỉ định các dòng cần cập nhật dựa trên điều kiện không bằng.

UPDATE employees
SET salary = salary * 1.1
WHERE job_id != 'Manager';

DELETE statements

Có thể dùng trong mệnh đề WHERE để xác định các dòng cần xóa khi điều kiện đúng.

DELETE FROM employees
WHERE department_id != 10;

Ví dụ thực tiễn

Hãy đi sâu hơn vào cách áp dụng toán tử SQL NOT EQUAL với các ví dụ mở rộng thể hiện tính linh hoạt và sức mạnh của nó trong truy vấn cơ sở dữ liệu. Các ví dụ này sẽ minh họa cách sử dụng hiệu quả != và <> trong nhiều tình huống, nâng cao kỹ năng truy vấn SQL của bạn.

Ví dụ 1: Lọc bản ghi cụ thể

Giả sử một bảng cơ sở dữ liệu tên là Employees với các cột EmployeeID, Name và DepartmentID. Để loại trừ nhân viên thuộc một phòng ban cụ thể, ví dụ DepartmentID 3, bạn có thể dùng toán tử NOT EQUAL:

EmployeeID

Name

DepartmentID

1

Alice Johnson

1

2

Bob Smith

2

3

Carol White

3

4

David Green

2

5

Erin Black

4

SELECT EmployeeID, Name, DepartmentID
FROM Employees
WHERE DepartmentID != 3;

Truy vấn này trả về tất cả nhân viên không thuộc DepartmentID 3, hiệu quả loại trừ những người trong phòng ban đó.

EmployeeID

Name

DepartmentID

1

Alice Johnson

1

2

Bob Smith

2

4

David Green

2

5

Erin Black

4

Ví dụ 2: Kết hợp các điều kiện

Bây giờ, giả sử bạn muốn loại trừ nhân viên thuộc DepartmentID 3 và những người có tên bắt đầu bằng 'A'. Điều này cần kết hợp toán tử NOT EQUAL với các điều kiện khác bằng AND và LIKE:

SELECT EmployeeID, Name, DepartmentID
FROM Employees
WHERE DepartmentID <> 3 AND Name NOT LIKE 'A%';

Truy vấn này minh họa cách dùng NOT EQUAL kết hợp với LIKE để khớp mẫu, loại trừ một nhóm nhân viên dựa trên tiêu chí phòng ban và tên.

EmployeeID

Name

DepartmentID

2

Bob Smith

2

4

David Green

2

5

Erin Black

4

Ví dụ 3: Xử lý giá trị NULL

Làm việc với giá trị NULL trong SQL cần chú ý đặc biệt vì NULL biểu thị giá trị không xác định. Để tìm nhân viên có ManagerID không xác định (tức là NULL), bạn có thể nghĩ đến việc dùng != hoặc <>. Tuy nhiên, cách đúng là dùng IS NOT NULL:

EmployeeID

Name

DepartmentID

ManagerID

1

Alice Johnson

1

NULL

2

Bob Smith

2

1

3

Carol White

3

1

4

David Green

2

2

5

Erin Black

4

3

Bảng Employees đã cập nhật

SELECT EmployeeID, Name
FROM Employees
WHERE ManagerID IS NOT NULL;

Truy vấn này lấy các nhân viên có ManagerID xác định, loại trừ những người có NULL ManagerID. Nó nhấn mạnh tầm quan trọng của việc hiểu cách SQL diễn giải giá trị NULL trong các phép so sánh.

EmployeeID

Name

2

Bob Smith

3

Carol White

4

David Green

5

Erin Black

Ví dụ 4: Dùng NOT EQUAL với tổng hợp

Giả sử bạn muốn phân tích dữ liệu bán hàng từ bảng Sales, loại trừ doanh số năm 2020. Kết hợp GROUP BY với NOT EQUAL cho phép bạn tổng hợp dữ liệu đồng thời lọc bỏ các năm cụ thể:

SaleID

SaleDate

Quantity

1

2019-05-01

2

2

2019-08-15

1

3

2020-04-20

3

4

2021-07-22

1

5

2021-11-05

2

6

2022-01-30

4

Bảng Sales

SELECT YEAR(SaleDate) AS SaleYear, COUNT(*) AS TotalSales
FROM Sales
GROUP BY YEAR(SaleDate)
HAVING YEAR(SaleDate) <> 2020;

Truy vấn này tổng hợp doanh số theo năm và loại trừ tổng doanh số của năm 2020, cho thấy cách NOT EQUAL có thể dùng với hàm tổng hợp và GROUP BY để tinh chỉnh phân tích dữ liệu.

SaleYear

TotalSales

2019

2

2021

2

2022

1

Ví dụ 5: Tối ưu hiệu năng

Khi truy vấn tập dữ liệu lớn, hiệu năng có thể bị ảnh hưởng bởi cách bạn cấu trúc điều kiện NOT EQUAL. Giả sử bạn làm việc với bảng Products và muốn loại trừ các sản phẩm thuộc danh mục 5 và 7. Thay vì dùng NOT EQUAL nhiều lần, có thể hiệu quả hơn khi dùng NOT IN:

ProductID

Name

CategoryID

1

Wireless Mouse

1

2

Gaming Keyboard

5

3

USB-C Charging Cable

3

4

Bluetooth Speakers

7

5

Ergonomic Chair

2

6

LED Monitor

4

7

Smartwatch

5

8

Desk Lamp

6

9

Webcam

2

SELECT ProductID, Name
FROM Products
WHERE CategoryID NOT IN (5, 7);

Truy vấn này ngắn gọn hơn và có thể hiệu quả hơn trên các tập dữ liệu lớn, minh họa một kỹ thuật tối ưu khi loại trừ nhiều giá trị cụ thể.

ProductID

Name

1

Wireless Mouse

3

USB-C Charging Cable

5

Ergonomic Chair

6

LED Monitor

8

Desk Lamp

9

Webcam

Qua các ví dụ này, bạn đã thấy tính linh hoạt và sức mạnh của toán tử SQL NOT EQUAL trong nhiều tình huống, từ loại trừ đơn giản đến truy vấn phức tạp liên quan đến tổng hợp và cân nhắc hiệu năng.

Khi thực hành các ví dụ này, hãy nhớ rằng lựa chọn giữa != và <> chủ yếu mang tính phong cách, nhưng sự nhất quán trong cách dùng sẽ giúp truy vấn SQL của bạn dễ đọc và bảo trì hơn.

Các lưu ý về hiệu năng

Mặc dù toán tử NOT EQUAL mạnh mẽ, việc sử dụng cần cân đối với yếu tố hiệu năng. Các phép so sánh bất đẳng thức đôi khi dẫn đến kế hoạch thực thi kém hiệu quả hơn, như quét toàn bộ bảng. Các lựa chọn thay thế như toán tử IN hoặc điều kiện bằng có lập chỉ mục có thể mang lại hiệu năng tốt hơn trong một số trường hợp.

Kết luận

Toán tử NOT EQUAL là công cụ nền tảng trong SQL để lọc dữ liệu. Bằng cách hiểu cách áp dụng và cân nhắc tác động đến hiệu năng, bạn có thể xây dựng các truy vấn hiệu quả và hiệu lực. Hãy nhớ, lựa chọn giữa <> và != nên nghiêng về <> để tuân thủ tiêu chuẩn ISO, giúp mã SQL của bạn vững chắc và có thể diễn giải phổ quát.

Để tìm hiểu thêm về toán tử SQL NOT EQUAL và khám phá các kiến thức cơ bản về SQL, hãy xem SQL Basics Cheat Sheet và lộ trình kỹ năng SQL Fundamentals.

Abid Ali Awan

Tác giả

Abid Ali Awan

Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.

Câu hỏi thường gặp về SQL NOT IN

SQL NOT EQUAL làm gì?

Toán tử SQL NOT EQUAL (<> hoặc !=) lọc dữ liệu bằng cách loại trừ các dòng khớp với một điều kiện cụ thể. Nó thường được dùng để truy xuất dữ liệu không đáp ứng tiêu chí đã chỉ định trong truy vấn.

<> và != có giống nhau trong SQL không?

Có, <> và != có cùng mục đích trong SQL, đều biểu thị bất đẳng thức. Tuy nhiên, <> được ưu tiên vì phù hợp với tiêu chuẩn ISO, giúp truy vấn dễ diễn giải hơn trên nhiều hệ thống.

Toán tử NOT EQUAL có xử lý giá trị NULL không?

Không, toán tử NOT EQUAL không xử lý trực tiếp giá trị NULL. Để lọc bỏ NULL, bạn cần dùng điều kiện IS NOT NULL, vì NULL biểu thị giá trị không xác định trong SQL.

Hiệu năng khác nhau thế nào khi dùng NOT EQUAL trong truy vấn SQL?

Việc dùng NOT EQUAL đôi khi có thể dẫn đến kế hoạch thực thi truy vấn kém hiệu quả hơn, như quét toàn bộ bảng. Để tối ưu hiệu năng, hãy cân nhắc các lựa chọn thay thế như toán tử IN hoặc các điều kiện bằng có lập chỉ mục khi phù hợp.

Tôi có thể kết hợp toán tử NOT EQUAL với các điều kiện SQL khác không?

Có, toán tử NOT EQUAL có thể kết hợp với các điều kiện khác bằng các toán tử logic như AND và OR, cũng như các hàm khớp mẫu như LIKE, để tạo các truy vấn phức tạp và chính xác hơn.

 

Chủ đề

Liên quan