SQLite - LIKE Clauses: A Beginner-Friendly Guide

Xin chào các nhà法师数据库未来的法师! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của SQLite và học về một trong những công cụ mạnh mẽ và linh hoạt nhất của nó: clause LIKE. Đừng lo lắng nếu bạn mới bắt đầu lập trình; tôi sẽ là người hướng dẫn thân thiện của bạn, giải thích mọi thứ từng bước. Hãy cùng nhau khám phá!

SQLite - LIKE Clause

What is the LIKE Clause?

Hãy tưởng tượng bạn đang cố gắng tìm một cuốn sách trong một thư viện khổng lồ, nhưng bạn chỉ nhớ một phần tiêu đề. Liệu có tốt không nếu bạn có thể tìm kiếm các cuốn sách có tiêu đề tương tự? Đó chính xác là điều mà clause LIKE làm trong SQLite, nhưng đối với dữ liệu trong cơ sở dữ liệu của bạn!

Clause LIKE được sử dụng trong các truy vấn SQL để tìm kiếm một mẫu cụ thể trong một cột. Nó giống như một chức năng tìm kiếm siêu thông minh có thể tìm thấy dữ liệu ngay cả khi bạn không biết chính xác giá trị bạn đang tìm kiếm.

Cú pháp của clause LIKE

Hãy cùng xem qua cú pháp cơ bản của clause LIKE:

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

Dưới đây là ý nghĩa của từng phần:

  • SELECT: Đây là nơi bạn chỉ định các cột bạn muốn thấy trong kết quả của mình.
  • FROM: Đây cho biết SQLite cần tìm trong bảng nào.
  • WHERE: Đây là nơi xảy ra phép màu! Nó được theo sau bởi điều kiện để lọc dữ liệu.
  • LIKE: Từ khóa này cho biết SQLite rằng chúng ta muốn sử dụng khớp mẫu.
  • pattern: Đây là nơi bạn chỉ định điều bạn đang tìm kiếm.

Ký tự đại diện

Trước khi chúng ta vào các ví dụ, hãy học về hai ký tự đặc biệt làm cho clause LIKE trở nên mạnh mẽ:

  1. % (dấu phần trăm): Đại diện cho không, một hoặc nhiều ký tự
  2. _ (dấu gạch dưới): Đại diện cho một ký tự

Những ký tự này giống như những con bài Joker trong một trò chơi bài - chúng có thể thay thế cho các ký tự khác trong mẫu tìm kiếm của bạn.

Các ví dụ về clause LIKE trong hành động

Bây giờ, hãy cúi tay vào và xem xét một số ví dụ thực tế. Giả sử chúng ta có một bảng gọi là books với các cột id, title, và author.

Ví dụ 1: Tìm các cuốn sách có tiêu đề bắt đầu với "The"

SELECT title
FROM books
WHERE title LIKE 'The%';

Truy vấn này sẽ trả về tất cả các tiêu đề sách bắt đầu với "The". Dấu % ở cuối có nghĩa là "theo sau bởi bất kỳ điều gì".

Kết quả có thể bao gồm:

  • The Great Gatsby
  • The Catcher in the Rye
  • The Hobbit

Ví dụ 2: Tìm các cuốn sách có "of" trong tiêu đề

SELECT title
FROM books
WHERE title LIKE '%of%';

Điều này sẽ tìm thấy bất kỳ tiêu đề sách nào có "of" ở bất kỳ vị trí nào. Dấu % ở cả hai bên có nghĩa là "bất kỳ điều gì trước và sau".

Kết quả có thể là:

  • The Grapes of Wrath
  • Lord of the Rings
  • Of Mice and Men

Ví dụ 3: Tìm các tác giả có chữ cái cụ thể đầu tiên

SELECT author
FROM books
WHERE author LIKE 'J. %';

Truy vấn này tìm kiếm các tác giả có tên bắt đầu với "J." theo sau bởi một khoảng trống và sau đó là bất kỳ điều gì khác.

Bạn có thể nhận được:

  • J. K. Rowling
  • J. R. R. Tolkien
  • J. D. Salinger

Ví dụ 4: Sử dụng ký tự đại diện underscore

SELECT title
FROM books
WHERE title LIKE '___';

Truy vấn này tìm tất cả các tiêu đề sách có chính xác ba ký tự. Mỗi _ đại diện cho một ký tự.

Kết quả có thể bao gồm:

  • Cat
  • Dog
  • Pig

Ví dụ 5: Kết hợp các ký tự đại diện

SELECT title
FROM books
WHERE title LIKE 'The ___ of%';

Truy vấn này tìm kiếm các tiêu đề bắt đầu với "The", theo sau bởi bất kỳ ba ký tự nào, sau đó "of", và sau đó bất kỳ điều gì khác.

Bạn có thể tìm thấy:

  • The Art of War
  • The Joy of Cooking
  • The Age of Innocence

Case Sensitivity

Mặc định, clause LIKE trong SQLite không phân biệt chữ hoa và chữ thường. Điều này có nghĩa là 'the%' sẽ khớp với 'The Great Gatsby' cũng như 'the hobbit'. Tuy nhiên, bạn có thể làm cho nó phân biệt chữ hoa và chữ thường bằng cách sử dụng clause GLOB thay vì LIKE, nhưng đó là chủ đề cho một ngày khác!

Bypassing Special Characters

Nếu bạn muốn tìm kiếm một % hoặc _ thực tế trong dữ liệu của bạn, bạn có thể sử dụng ký tự thoát \ trước ký tự đặc biệt:

SELECT title
FROM books
WHERE title LIKE '%100\%%';

Điều này sẽ tìm thấy các tiêu đề kết thúc bằng "100%", như "Top 100%" hoặc "The Best 100%".

Các ứng dụng thực tế của LIKE

Clause LIKE vô cùng hữu ích trong nhiều tình huống thực tế:

  1. Tìm kiếm người dùng theo địa chỉ email một phần
  2. Tìm kiếm sản phẩm theo một phần mô tả
  3. Lọc các mục nhật ký theo mẫu ngày
  4. Tìm kiếm các tệp với các phần mở rộng cụ thể

Các phương pháp của LIKE

Dưới đây là bảng tóm tắt các mẫu khác nhau bạn có thể sử dụng với LIKE:

Pattern Description Example
LIKE 'a%' Finds any values that start with "a" LIKE 'apple%' matches "apple pie"
LIKE '%a' Finds any values that end with "a" LIKE '%apple' matches "pineapple"
LIKE '%or%' Finds any values that have "or" in any position LIKE '%book%' matches "bookstore"
LIKE '_r%' Finds any values that have "r" in the second position LIKE '_r%' matches "brick"
LIKE 'a_%' Finds any values that start with "a" and are at least 2 characters in length LIKE 'a_%' matches "apple" but not "a"
LIKE 'a__%' Finds any values that start with "a" and are at least 3 characters in length LIKE 'a__%' matches "apple" but not "ax"

Kết luận

Và thế là bạn đã có nó, các bạn! Bạn vừa học về clause LIKE mạnh mẽ trong SQLite. Nó giống như một công cụ tìm kiếm siêu thông minh ngay trong cơ sở dữ liệu của bạn. Nhớ rằng, thực hành là cách tốt nhất để trở nên hoàn hảo, vì vậy đừng ngại thử nghiệm với các mẫu và kết hợp khác nhau.

Lần sau khi bạn làm việc với cơ sở dữ liệu và cần tìm kiếm điều gì đó nhưng không có chính xác, hãy nghĩ đến clause LIKE như người bạn mới của bạn. Nó linh hoạt, mạnh mẽ và một khi bạn đã thành thạo, bạn sẽ tự hỏi làm thế nào bạn từng sống mà không có nó!

Tiếp tục mã hóa, 保持好奇心, và chúc bạn may mắn trong việc săn lùng dữ liệu!

Credits: Image by storyset