06/04/2021, 14:51

Kiểm tra điều kiện với REGEXP_LIKE trong Oracle - Oracle căn bản

Trong bài này mình sẽ hướng dẫn bạn sử dụng một lệnh kiểm tra điều kiện mới đó là REGEX_LIKE, lệnh này có công dụng giống như lệnh LIKE, chỉ có điều là lệnh này sử dụng để so khớp vỡi những khuôn mẫu phức tạp hơn, vì vậy bạn đừng hiểu lầm giữa REGEX_LIKE và LIKE nhé. 1. Lệnh REGEXP_LIKE ...

Trong bài này mình sẽ hướng dẫn bạn sử dụng một lệnh kiểm tra điều kiện mới đó là REGEX_LIKE, lệnh này có công dụng giống như lệnh LIKE, chỉ có điều là lệnh này sử dụng để so khớp vỡi những khuôn mẫu phức tạp hơn, vì vậy bạn đừng hiểu lầm giữa REGEX_LIKE và LIKE nhé.

1. Lệnh REGEXP_LIKE trong Oracle

Bạn có thể sử dụng biểu thức chính quy Regular Expression để tạo khuôn mẫu, đây là một tính năng rất hay trong các hệ quản trị CSDL hiện nay như MySQL, SQL Server, Oracle ...

Cú pháp

REGEXP_LIKE ( expression, pattern [, match_parameter ] )

Trong đó:

  • expression là column bạn muốn kiểm tra
  • pattern là chuỗi pattern dùng để so khớp, sử dụng cú pháp regular expression (xem bảng phía dưới)
  • match_parameter có thể có hoặc không, nó cho phép phạm vi hoạt động của chuỗi regex (xem bảng phía dưới)

Bảng regular expression

Bảng match_parameter

Mình sẽ không dịch sang tiếng Việt, bởi có những từ dịch ra sẽ khó hiểu hơn là để nguyên vậy ;) Nếu bạn không dịch được thì hãy sử dụng google translate nhé.

2. Một vài ví dụ với REGEX_LIKE trong Oracle

Sau đây là một vài ví dụ đơn giản sử dụng các biểu thức chính quy để tạo ra chuỗi pattern.

Ví dụ 1: Lấy danh sách sinh viên có tên là Tường hoặc Cường. Với ví dụ này mình sẽ sử dụng ký hiệu hoặc |.

SELECT *
FROM students
WHERE REGEXP_LIKE (last_name, '^(C|T)ường');

Ví dụ 2: Lấy danh sách sinh viên có tên bắt đầu bằng chữ A

SELECT *
FROM students
WHERE REGEXP_LIKE (last_name, '^A(*)');

Trường hợp này bạn cũng có thể bỏ cặp dấu ().

Ví dụ 3: Lấy danh sách sinh viên có tên kết thúc là chữ ng.

SELECT *
FROM students
WHERE REGEXP_LIKE (last_name, '(*)ng$');

3. Lời kết

Trên chỉ là kiến thức căn bản, bạn còn phải nghiên cứu nhiều thì mới hiểu hết tất cả các ký hiệu của biểu thức chính quy.

Tóm lại để học được bài này thì bạn phải có một chút kiến thức về lập trình nói chung và regular expression nói riêng

Trần Trung Dũng

15 chủ đề

2610 bài viết

Cùng chủ đề
0