1. Giới thiệu

SQL Operators là các toán tử được sử dụng trong SQL để thực hiện các phép toán trên dữ liệu trong cơ sở dữ liệu. Chúng bao gồm các phép so sánh, toán học, logic, và các phép toán trên chuỗi hoặc NULL. Các toán tử này đóng vai trò quan trọng trong việc xây dựng các câu truy vấn SQL để thao tác, so sánh, và lọc dữ liệu.

Bài viết này sẽ giúp bạn hiểu rõ các nhóm SQL Operators phổ biến, cú pháp và ví dụ minh họa từ bảng dữ liệu giả định.

2. Các loại SQL Operators

SQL Operators có thể được chia thành các nhóm chính sau:

  • Toán tử số học (Arithmetic Operators): Thực hiện các phép tính trên các giá trị số.
  • Toán tử so sánh (Comparison Operators): So sánh hai giá trị với nhau.
  • Toán tử logic (Logical Operators): Kết hợp các điều kiện logic.
  • Toán tử chuỗi (String Operators): Thao tác trên chuỗi ký tự.
  • Toán tử NULL (Null Operators): Kiểm tra các giá trị NULL.

3. Toán tử số học (Arithmetic Operators)

Các toán tử số học trong SQL được sử dụng để thực hiện các phép toán như cộng, trừ, nhân, chia trên các giá trị số.

Các toán tử số học:

Toán tửMô tả
+Cộng hai giá trị
-Trừ hai giá trị
*Nhân hai giá trị
/Chia hai giá trị
%Chia lấy dư

Ví dụ:

Giả sử chúng ta có bảng employees với dữ liệu sau:

employee_idfirst_namelast_namesalarybonus
1JohnDoe15000005000
2JaneSmith1700000NULL
3BobJohnson13000003000

Ví dụ 1: Cộng lương và thưởng để tính tổng thu nhập

shell
SELECT first_name, last_name, salary + IFNULL(bonus, 0) AS total_income
FROM employees;

Kết quả:

first_namelast_nametotal_income
JohnDoe1505000
JaneSmith1700000
BobJohnson1303000

4. Toán tử so sánh (Comparison Operators)

Các toán tử so sánh trong SQL được sử dụng để so sánh hai giá trị và trả về kết quả đúng hoặc sai (TRUE/FALSE).

Các toán tử so sánh:

Toán tửMô tả
=Bằng
<>Không bằng (hoặc !=)
>Lớn hơn
<Nhỏ hơn
>=Lớn hơn hoặc bằng
<=Nhỏ hơn hoặc bằng
BETWEENNằm trong khoảng
LIKEKhớp với mẫu chuỗi
INKiểm tra xem có thuộc tập giá trị

Ví dụ:

Ví dụ 2: Tìm tất cả nhân viên có lương lớn hơn 1,500,000

shell
SELECT first_name, last_name, salary
FROM employees
WHERE salary > 1500000;

Kết quả:

first_namelast_namesalary
JaneSmith1700000

Ví dụ 3: Tìm tất cả nhân viên có lương nằm trong khoảng từ 1,300,000 đến 1,700,000

shell
SELECT first_name, last_name, salary
FROM employees
WHERE salary BETWEEN 1300000 AND 1700000;

Kết quả:

first_namelast_namesalary
JohnDoe1500000
BobJohnson1300000

Ví dụ 4: Sử dụng LIKE để tìm các nhân viên có họ bắt đầu bằng 'J'

shell
SELECT first_name, last_name
FROM employees
WHERE last_name LIKE 'J%';

Kết quả:

first_namelast_name
JohnDoe
BobJohnson

5. Toán tử logic (Logical Operators)

Các toán tử logic trong SQL được sử dụng để kết hợp nhiều điều kiện.

Các toán tử logic:

Toán tửMô tả
ANDKết hợp hai điều kiện và trả về TRUE nếu cả hai điều kiện đúng
ORKết hợp hai điều kiện và trả về TRUE nếu một trong hai điều kiện đúng
NOTĐảo ngược kết quả của điều kiện

Ví dụ:

Ví dụ 5: Tìm tất cả nhân viên trong phòng "Sales" hoặc có lương lớn hơn 1,600,000

shell
SELECT first_name, last_name, salary
FROM employees
WHERE department = 'Sales' OR salary > 1600000;

Kết quả:

first_namelast_namesalary
JohnDoe1500000
JaneSmith1700000
BobJohnson1300000

Ví dụ 6: Tìm tất cả nhân viên trong phòng "Sales" và có lương lớn hơn 1,400,000

shell
SELECT first_name, last_name, salary
FROM employees
WHERE department = 'Sales' AND salary > 1400000;

Kết quả:

first_namelast_namesalary
JohnDoe1500000

6. Toán tử chuỗi (String Operators)

SQL cung cấp một số toán tử để làm việc với chuỗi.

Các toán tử chuỗi:

Toán tửMô tả
+Kết hợp hai chuỗi (trong một số hệ quản trị cơ sở dữ liệu)
`

Ví dụ:

Ví dụ 7: Nối chuỗi để tạo tên đầy đủ của nhân viên

shell
SELECT first_name || ' ' || last_name AS full_name
FROM employees;

Kết quả:

full_name
John Doe
Jane Smith
Bob Johnson

7. Toán tử NULL (Null Operators)

SQL cung cấp các toán tử để kiểm tra và xử lý các giá trị NULL.

Các toán tử NULL:

Toán tửMô tả
IS NULLKiểm tra nếu giá trị là NULL
IS NOT NULLKiểm tra nếu giá trị không phải là NULL

Ví dụ:

Ví dụ 8: Tìm tất cả nhân viên có giá trị thưởng là NULL

shell
SELECT first_name, last_name
FROM employees
WHERE bonus IS NULL;

Kết quả:

first_namelast_name
JaneSmith

Ví dụ 9: Tìm tất cả nhân viên có giá trị thưởng không phải NULL

shell
SELECT first_name, last_name
FROM employees
WHERE bonus IS NOT NULL;

Kết quả:

first_namelast_name
JohnDoe
BobJohnson

8. Các toán tử khác

SQL còn cung cấp một số toán tử đặc biệt khác như:

  • EXISTS: Kiểm tra xem một truy vấn con có trả về kết quả hay không.
  • BETWEEN: Kiểm tra xem giá trị có nằm trong một khoảng giá trị hay không.
  • IN: Kiểm tra xem giá trị có thuộc một tập hợp giá trị nào đó hay không.
  • ANYALL: So sánh giá trị với bất kỳ hoặc tất cả giá trị trong một tập hợp con.

Ví dụ:

Ví dụ 10: Sử dụng IN để tìm nhân viên có lương thuộc một trong các giá trị 1,300,000 hoặc 1,700,000

shell
SELECT first_name, last_name, salary
FROM employees
WHERE salary IN (1300000, 1700000);

Kết quả:

first_namelast_namesalary
JaneSmith1700000
BobJohnson1300000

Kết luận

SQL Operators là những công cụ mạnh mẽ trong SQL, giúp bạn thực hiện các phép toán, so sánh, và logic phức tạp để truy vấn dữ liệu. Từ việc tính toán số học, so sánh, đến thao tác chuỗi và kiểm tra giá trị NULL, các toán tử này giúp bạn xây dựng các truy vấn chính xác và tối ưu hơn.

Hãy thử áp dụng các ví dụ này vào các bài tập và dự án thực tế trên CodeTutHub để hiểu rõ hơn về cách sử dụng SQL Operators trong cơ sở dữ liệu của bạn!