SQLite - WHERE Clause: Cửa ngõ để Truy xuất Dữ liệu Chính Xác

Xin chào các bạn đam mê SQLite! Tôi rất vui mừng được làm hướng dẫn viên của bạn trong hành trình thú vị vào thế giới truy vấn cơ sở dữ liệu. Hôm nay, chúng ta sẽ cùng nhau khám phá một trong những công cụ mạnh mẽ nhất trong bộ công cụ SQLite của bạn: mệnh đề WHERE. Cuối cùng của bài hướng dẫn này, bạn sẽ có khả năng lọc dữ liệu như một chuyên gia, ấn tượng với bạn bè và đồng nghiệp tương lai của bạn!

SQLite - WHERE Clause

What is the WHERE Clause? (Gì là mệnh đề WHERE?)

Trước khi chúng ta đi sâu vào chi tiết, hãy bắt đầu từ những điều cơ bản. Hãy tưởng tượng bạn có một thư viện khổng lồ (cơ sở dữ liệu của bạn) đầy sách (dữ liệu của bạn). Bây giờ, nếu bạn muốn tìm tất cả các tiểu thuyết之谜 viết sau năm 2010? Đó là lúc mệnh đề WHERE phát huy tác dụng! Nó giống như một bộ lọc ma thuật giúp bạn xác định chính xác dữ liệu bạn đang tìm kiếm.

Mệnh đề WHERE được sử dụng trong SQLite để chỉ định các điều kiện phải được满足 để dữ liệu được trả về trong kết quả truy vấn của bạn. Nó giống như nói với cơ sở dữ liệu, "Hey, tôi chỉ muốn xem thông tin cụ thể này!"

Cú pháp: Ngữ pháp của WHERE

Bây giờ, hãy nhìn vào cú pháp của mệnh đề WHERE. Đừng lo lắng nếu nó trông có vẻ rùng rợn ban đầu - chúng ta sẽ phân tích nó từng bước một!

SELECT column1, column2, ...
FROM table_name
WHERE condition;

Dưới đây là ý nghĩa của mỗi phần:

  • SELECT: Đây là nơi bạn chỉ định các cột bạn muốn xem.
  • FROM: Điều này cho SQLite biết bạn muốn xem trong bảng nào.
  • WHERE: Đây là nơi xảy ra phép màu! Bạn sẽ đặt các điều kiện của mình ở đây.

Điều kiện có thể bao gồm một hoặc nhiều biểu thức, có thể bao gồm:

  • Các toán tử so sánh (=, <>, <, >, <=, >=)
  • Các toán tử logic (AND, OR, NOT)
  • Các toán tử đặc biệt (BETWEEN, LIKE, IN)

Hãy cùng nhìn vào một số ví dụ để làm rõ!

Ví dụ: WHERE trong hành động

Ví dụ 1: So sánh cơ bản

Giả sử chúng ta có một bảng gọi là students với các cột id, name, và age. Chúng ta muốn tìm tất cả học sinh 18 tuổi.

SELECT name
FROM students
WHERE age = 18;

Truy vấn này sẽ trả về tên của tất cả học sinh exactly 18 tuổi. Đơn giản phải không?

Ví dụ 2: Nhiều điều kiện

Bây giờ, nếu chúng ta muốn tìm học sinh 18 tuổi và có tên bắt đầu bằng 'A'?

SELECT name, age
FROM students
WHERE age = 18 AND name LIKE 'A%';

Truy vấn này sử dụng toán tử AND để kết hợp hai điều kiện:

  1. age = 18: Học sinh phải 18 tuổi.
  2. name LIKE 'A%': Tên của học sinh phải bắt đầu bằng 'A'. Ký tự % là một ký tự đại diện có nghĩa là "bất kỳ ký tự nào có thể theo sau".

Ví dụ 3: Truy vấn phạm vi

Nếu chúng ta muốn tìm học sinh trong độ tuổi từ 18 đến 22?

SELECT name, age
FROM students
WHERE age BETWEEN 18 AND 22;

Toán tử BETWEEN là một cách tiện lợi để xác định một phạm vi. Truy vấn này sẽ trả về tất cả học sinh có độ tuổi là 18, 19, 20, 21 hoặc 22.

Ví dụ 4: Toán tử IN

Giả sử chúng ta muốn tìm học sinh trong các lớp học cụ thể:

SELECT name, grade
FROM students
WHERE grade IN (9, 10, 11);

Toán tử IN cho phép bạn xác định nhiều giá trị để khớp. Truy vấn này sẽ trả về học sinh ở các lớp 9, 10 hoặc 11.

Ví dụ 5: Kết hợp các loại điều kiện khác nhau

Bây giờ, hãy kết hợp tất cả! Chúng ta muốn tìm:

  • Học sinh hoặc 18 tuổi hoặc lớp 12
  • VÀ tên bắt đầu bằng 'A' hoặc 'B'
SELECT name, age, grade
FROM students
WHERE (age = 18 OR grade = 12)
AND (name LIKE 'A%' OR name LIKE 'B%');

Truy vấn này minh họa cách bạn có thể sử dụng dấu ngoặc để nhóm điều kiện và kết hợp các loại so sánh khác nhau.

Các toán tử WHERE phổ biến

Dưới đây là bảng tóm tắt các toán tử phổ biến nhất bạn sẽ sử dụng với mệnh đề WHERE:

Toán tử Mô tả Ví dụ
= Bằng WHERE age = 18
<> hoặc != Không bằng WHERE grade <> 12
> Lớn hơn WHERE score > 90
< Nhỏ hơn WHERE price < 50
>= Lớn hơn hoặc bằng WHERE quantity >= 100
<= Nhỏ hơn hoặc bằng WHERE year <= 2020
BETWEEN Trong một phạm vi bao gồm WHERE age BETWEEN 18 AND 25
LIKE Khớp mẫu WHERE name LIKE 'J%'
IN Xác định nhiều giá trị WHERE country IN ('USA', 'UK', 'Canada')
AND Kết hợp điều kiện (tất cả phải đúng) WHERE age > 18 AND grade = 12
OR Kết hợp điều kiện (ít nhất một phải đúng) WHERE subject = 'Math' OR subject = 'Science'
NOT Phủ định một điều kiện WHERE NOT grade = 12

Kết luận: Siêu năng lực lọc dữ liệu mới của bạn

Chúc mừng! Bạn vừa mở khóa một công cụ mạnh mẽ trong bộ công cụ SQLite của bạn. Mệnh đề WHERE là vé vào việc truy xuất dữ liệu chính xác, cho phép bạn sàng lọc qua núi thông tin để tìm chính xác những gì bạn cần.

Nhớ rằng, thực hành là chìa khóa của thành công. Hãy thử tạo cơ sở dữ liệu riêng của bạn và thử nghiệm với các mệnh đề WHERE khác nhau. Nhanh chóng, bạn sẽ trở thành một chuyên gia truy vấn!

Trong khi tiếp tục hành trình SQLite của bạn, hãy nhớ rằng mệnh đề WHERE chỉ là bắt đầu. Có một thế giới rộng lớn các kỹ thuật truy vấn nâng cao đang chờ bạn khám phá. Nhưng hiện tại, hãy tự награ thưởng mình - bạn đã bước một bước lớn để trở thành một phù thủy cơ sở dữ liệu!

Chúc bạn thành công trong việc truy vấn, và dữ liệu của bạn luôn được lọc tốt!

Credits: Image by storyset