Bài tập

Lọc Dữ Liệu Như Cao Thủ với Mệnh Đề WHERE trong SQL

Huy Erick

Chào bạn, đã bao giờ bạn phải tìm kiếm thông tin trong một núi dữ liệu khổng lồ chưa? Giống như mò kim đá biển vậy! Nhưng đừng lo, với SQL và "người bạn đồng...

Chào bạn, đã bao giờ bạn phải tìm kiếm thông tin trong một núi dữ liệu khổng lồ chưa? Giống như mò kim đá biển vậy! Nhưng đừng lo, với SQL và "người bạn đồng hành" WHERE, việc lọc dữ liệu sẽ trở nên dễ dàng hơn bao giờ hết. Bài viết này sẽ giúp bạn hiểu rõ về mệnh đề WHERE, cách sử dụng các toán tử, và đặc biệt là mẹo kết hợp AND, OR để lọc chính xác thông tin bạn cần.

Hãy cùng khám phá sức mạnh của WHERE và trở thành bậc thầy truy vấn dữ liệu nhé!

Mệnh Đề WHERE: Khái Niệm và Ứng Dụng

WHERE là gì mà "thần thánh" vậy?

WHERE trong SQL hoạt động như một bộ lọc thông minh, giúp bạn chọn lọc chính xác những dữ liệu bạn cần từ cơ sở dữ liệu. Thay vì phải xem xét từng dòng dữ liệu một, WHERE giúp bạn đưa ra tiêu chí cụ thể, và chỉ những dữ liệu phù hợp mới được hiển thị.

Mục Đích của WHERE

  • Lọc dữ liệu: WHERE giúp thu hẹp kết quả truy vấn, loại bỏ những thông tin không cần thiết, chỉ hiển thị dữ liệu phù hợp với nhu cầu của bạn.

Cấu Trúc Câu Lệnh WHERE

SELECT column1, column2, ... FROM table_name WHERE condition;
  • column1, column2, ...: Các cột thông tin bạn muốn lấy từ bảng dữ liệu.
  • table_name: Tên của bảng dữ liệu bạn muốn truy vấn.
  • condition: Điều kiện lọc dữ liệu.

Toán Tử trong WHERE: Những "Vũ Khí" Lọc Dữ Liệu

Các toán tử thường được sử dụng trong mệnh đề WHERE

BETWEEN: Lọc Theo Khoảng Giá Trị

Bạn muốn tìm kiếm sản phẩm có giá trong khoảng nào đó? BETWEEN chính là giải pháp! Toán tử này cho phép bạn chọn dữ liệu nằm trong một phạm vi giá trị cụ thể, bao gồm cả giá trị đầu và cuối.

Ví dụ: Lấy danh sách sản phẩm có giá từ 50.000 đến 100.000 đồng.

SELECT * FROM products WHERE price BETWEEN 50000 AND 100000;

IN: Lọc Theo Danh Sách Giá Trị

IN giúp bạn tìm kiếm dữ liệu dựa trên một danh sách các giá trị cho trước. Thay vì viết nhiều điều kiện OR, bạn có thể sử dụng IN một cách ngắn gọn và dễ hiểu hơn.

Ví dụ: Tìm kiếm khách hàng ở Hà Nội hoặc Hồ Chí Minh.

SELECT * FROM customers WHERE city IN ('Hà Nội', 'Hồ Chí Minh'); 

IS NULL: Xử Lý Dữ Liệu Trống

Trong cơ sở dữ liệu, không phải trường nào cũng luôn có giá trị. IS NULL giúp bạn tìm kiếm những trường dữ liệu trống, giúp bạn xử lý thông tin thiếu một cách hiệu quả.

Ví dụ: Tìm những khách hàng chưa có số điện thoại.

SELECT * FROM customers WHERE phone_number IS NULL;

LIKE: Tìm Kiếm Theo Mẫu

LIKE là toán tử mạnh mẽ giúp bạn tìm kiếm dữ liệu dựa trên một mẫu (pattern) nhất định. Sử dụng LIKE kết hợp với ký tự đại diện % (thay thế cho 0 hoặc nhiều ký tự) và _ (thay thế cho 1 ký tự), bạn có thể tìm kiếm thông tin một cách linh hoạt.

Ví dụ: Tìm kiếm sản phẩm có tên bắt đầu bằng "Điện thoại".

SELECT * FROM products WHERE product_name LIKE 'Điện thoại%';

Kết Hợp AND và OR: Nâng Cao Khả Năng Lọc Dữ Liệu

AND: Khi Cần Tất Cả Điều Kiện Phải Đúng

AND giúp bạn kết hợp nhiều điều kiện trong mệnh đề WHERE, và chỉ những dữ liệu thỏa mãn tất cả các điều kiện mới được trả về.

Ví dụ: Tìm kiếm khách hàng là nữ và sống tại Hà Nội.

SELECT * FROM customers WHERE gender = 'Nữ' AND city = 'Hà Nội';

OR: Khi Chỉ Cần Một Điều Kiện Đúng

OR cũng giúp bạn kết hợp nhiều điều kiện, nhưng chỉ cần ít nhất một điều kiện đúng, dữ liệu đã được chọn.

Ví dụ: Tìm kiếm khách hàng là nữ hoặc sống tại Hà Nội.

SELECT * FROM customers WHERE gender = 'Nữ' OR city = 'Hà Nội';

Kết Hợp AND và OR: Lọc Dữ Liệu Tinh Tế Hơn

Bạn có thể kết hợp AND và OR để tạo ra những điều kiện lọc phức tạp và chính xác hơn.

Ví dụ: Tìm kiếm khách hàng là nữ và sống tại Hà Nội, hoặc là khách hàng nam và sống tại Hồ Chí Minh.

SELECT * FROM customers WHERE (gender = 'Nữ' AND city = 'Hà Nội') OR (gender = 'Nam' AND city = 'Hồ Chí Minh');

Tối Ưu Hiệu Suất: Khi WHERE Trở Nên "Nhanh Nhạy" Hơn

  • Hạn chế sử dụng hàm (function) trong mệnh đề WHERE: Thay vì sử dụng hàm trực tiếp trong WHERE, hãy tính toán giá trị trước rồi so sánh trong WHERE.

  • Sử dụng LIKE thay vì NOT LIKE: Thay vì tìm kiếm những gì không khớp, hãy tập trung vào những gì khớp với điều kiện.

  • Sử dụng chỉ mục (index): Index giúp cho việc tìm kiếm dữ liệu nhanh hơn, đặc biệt là với những bảng dữ liệu lớn.

Lời kết:

Mệnh đề WHERE là công cụ không thể thiếu khi bạn muốn truy vấn dữ liệu hiệu quả với SQL. Hi vọng bài viết này đã giúp bạn hiểu rõ hơn về WHERE, cách sử dụng các toán tử, và mẹo kết hợp AND, OR để lọc dữ liệu một cách chính xác và tối ưu nhất. Chúc bạn thành công!

1