PostgreSQL - LIKE Clausule: Hướng dẫn thân thiện cho người mới bắt đầu

Xin chào các bạn tương lai của các phù thủy cơ sở dữ liệu! 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 PostgreSQL, đặc biệt tập trung vào Clausule LIKE. Đừng lo lắng nếu bạn là người mới bắt đầu - tôi sẽ là hướng dẫn viên thân thiện của bạn, và chúng ta sẽ cùng nhau bước từng bước. Cuối cùng của bài hướng dẫn này, bạn sẽ sử dụng Clausule LIKE như một chuyên gia!

PostgreSQL - Like Clause

Clausule LIKE là gì?

Trước khi chúng ta đi sâu vào chi tiết, hãy hiểu Clausule LIKE là gì. 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 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à Clausule LIKE làm trong PostgreSQL - nó giúp bạn tìm kiếm dữ liệu khớp với một mẫu cụ thể.

Clausule LIKE được sử dụng trong SQL WHERE clause để tìm kiếm 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 mạnh mẽ hiểu các ký tự đại diện. Đúng là rất tuyệt vời phải không?

Cú pháp của Clausule LIKE

Bây giờ, hãy nhìn vào cú pháp cơ bản của Clausule LIKE:

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

Đừng để điều này làm bạn害怕! Chúng ta sẽ phân tích nó:

  1. SELECT column1, column2, ...: Đây là nơi bạn chỉ định các cột bạn muốn thấy trong kết quả.
  2. FROM table_name: Đây là bảng bạn đang tìm kiếm.
  3. WHERE columnN LIKE pattern: Đây là nơi phép thuật xảy ra. Bạn đang告诉 PostgreSQL tìm kiếm trong columnN dữ liệu khớp với mẫu của bạn.

Ký tự đại diện trong Clausule LIKE

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

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

Hãy nghĩ của chúng như những 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ề Clausule LIKE trong hành động

Hãy cùng vào một số ví dụ để xem Clausule LIKE hoạt động trong các tình huống thực tế. Hãy tưởng tượng chúng ta có một bảng gọi là books với các cột book_id, title, và author.

Ví dụ 1: Tìm kiếm tiêu đề bắt đầu bằng '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 bằng 'The'. Dấu % sau 'The' có nghĩa là "theo sau bởi bất kỳ số lượng ký tự nào".

Vậy, nó có thể trả về:

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

Ví dụ 2: Tìm kiếm các tác giả có 'son' trong tên

SELECT author
FROM books
WHERE author LIKE '%son%';

Truy vấn này tìm kiếm các tác giả có 'son' ở bất kỳ đâu trong tên. Dấu % trước và sau 'son' có nghĩa là "bất kỳ ký tự nào trước và sau".

Điều này có thể trả về:

  • Jodi Picoult
  • Orson Scott Card
  • Jason Reynolds

Ví dụ 3: Tìm kiếm tiêu đề có chính xác 5 ký tự

SELECT title
FROM books
WHERE title LIKE '_____';

Ở đây, chúng ta sử dụng năm dấu gạch dưới để tìm kiếm các tiêu đề có chính xác năm ký tự.

Điều này có thể trả về:

  • Dunes
  • Ender
  • Holes

Ví dụ 4: Tìm kiếm không phân biệt chữ hoa chữ thường

Mặc định, Clausule LIKE phân biệt chữ hoa chữ thường. Nhưng nếu bạn muốn tìm kiếm 'the' bất kể nó là chữ hoa hay chữ thường? PostgreSQL có giải pháp:

SELECT title
FROM books
WHERE LOWER(title) LIKE '%the%';

Truy vấn này chuyển tất cả các tiêu đề thành chữ thường trước khi tìm kiếm, vì vậy nó sẽ tìm thấy 'The', 'THE', 'the', và bất kỳ sự kết hợp nào khác.

Các kỹ thuật nâng cao với Clausule LIKE

Bây giờ bạn đã có基础知识, hãy nhìn vào một số kỹ thuật nâng cao.

Sử dụng NOT LIKE

Đôi khi, bạn muốn tìm kiếm tất cả những gì không khớp với mẫu. Đó là nơi NOT LIKE được sử dụng:

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

Điều này sẽ tìm thấy tất cả các tiêu đề không bắt đầu bằng 'The'.

Tránh ký tự đặc biệt

Nếu bạn muốn tìm kiếm một tiêu đề thực sự chứa '%' hoặc '_', bạn có thể sử dụng ký tự thoát:

SELECT title
FROM books
WHERE title LIKE '50\% off%' ESCAPE '\';

Điều này sẽ tìm thấy các tiêu đề bắt đầu với '50% off', treating the '%' as a literal character, not a wildcard.

Các phương pháp với Clausule LIKE

Dưới đây là bảng tóm tắt các phương pháp khác nhau chúng ta có thể sử dụng với Clausule LIKE:

Phương pháp Mô tả Ví dụ
LIKE 'pattern' Khớp với mẫu chính xác WHERE title LIKE 'The Great Gatsby'
LIKE '%pattern%' Khớp với mẫu ở bất kỳ đâu WHERE title LIKE '%Great%'
LIKE 'pattern%' Khớp với mẫu ở đầu WHERE title LIKE 'The%'
LIKE '%pattern' Khớp với mẫu ở cuối WHERE title LIKE '%Gatsby'
LIKE 'pattern' Khớp với mẫu với ký tự đại diện đơn WHERE title LIKE 'he'
NOT LIKE 'pattern' Khớp với tất cả những gì không khớp với mẫu WHERE title NOT LIKE 'The%'
ILIKE 'pattern' LIKE không phân biệt chữ hoa chữ thường WHERE title ILIKE 'the%'

Kết luận

Và đó là tất cả, các bạn! Bạn đã chính thức bước vào thế giới kỳ diệu của Clausule LIKE trong PostgreSQL. Nhớ rằng, thực hành làm nên hoàn hảo, vì vậy đừng ngại thử nghiệm với các mẫu và sự kết hợp khác nhau.

Clausule LIKE là một công cụ mạnh mẽ trong bộ công cụ PostgreSQL của bạn, cho phép bạn tìm kiếm dữ liệu với sự linh hoạt và chính xác. Nó luôn hỗ trợ bạn, bất kể bạn đang tìm kiếm tiêu đề sách, tên khách hàng hay bất kỳ dữ liệu văn bản nào khác.

Tiếp tục khám phá, tiếp tục truy vấn, và quan trọng nhất, tiếp tục vui vẻ với cơ sở dữ liệu! Ai biết được? Bạn có thể trở thành siêu anh hùng cơ sở dữ liệu tiếp theo. Đến gặp lại lần sau, chúc bạn viết mã vui vẻ!

Credits: Image by storyset