MỞ ĐẦU
ORACLE TABLE
ORACLE QUERY
ORACLE CONDITION
ORACLE CLAUSES
ORACLE OPERATORS
ORACLE JOINS
ORACLE REFERENCE
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Kiểm tra điều kiện với REGEXP_LIKE trong Oracle

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 ...

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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

Value Description
^ Matches the beginning of a string. If used with a match_parameter of 'm', it matches the start of a line anywhere within expression.
$ Matches the end of a string. If used with a match_parameter of 'm', it matches the end of a line anywhere within expression.
* Matches zero or more occurrences.
+ Matches one or more occurrences.
? Matches zero or one occurrence.
. Matches any character except NULL.
| Used like an "OR" to specify more than one alternative.
[ ] Used to specify a matching list where you are trying to match any one of the characters in the list.
[^ ] Used to specify a nonmatching list where you are trying to match any character except for the ones in the list.
( ) Used to group expressions as a subexpression.
{m} Matches m times.
{m,} Matches at least m times.
{m,n} Matches at least m times, but no more than n times.
\n n is a number between 1 and 9. Matches the nth subexpression found within ( ) before encountering \n.
[..] Matches one collation element that can be more than one character.
[::] Matches character classes.
[==] Matches equivalence classes.
\d Matches a digit character.
\D Matches a nondigit character.
\w Matches a word character.
\W Matches a nonword character.
\s Matches a whitespace character.
\S matches a non-whitespace character.
\A Matches the beginning of a string or matches at the end of a string before a newline character.
\Z Matches at the end of a string.
*? Matches the preceding pattern zero or more occurrences.
+? Matches the preceding pattern one or more occurrences.
?? Matches the preceding pattern zero or one occurrence.
{n}? Matches the preceding pattern n times.
{n,}? Matches the preceding pattern at least n times.
{n,m}? Matches the preceding pattern at least n times, but not more than m times.

Bảng match_parameter

Value Description
'c' Perform case-sensitive matching.
'i' Perform case-insensitive matching.
'n' Allows the period character (.) to match the newline character. By default, the period is a wildcard.
'm' expression is assumed to have multiple lines, where ^ is the start of a line and $ is the end of a line, regardless of the position of those characters in expression. By default, expression is assumed to be a single line.
'x' Whitespace characters are ignored. By default, whitespace characters are matched like any other character.

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

Cùng chuyên mục:

Hàm Hàm ASCII trong Oracle

Hàm Hàm ASCII trong Oracle

Cách sử dụng hàm Hàm ASCII trong 150

Hàm Hàm ASCIISTR trong Oracle

Hàm Hàm ASCIISTR trong Oracle

Cách sử dụng hàm Hàm ASCIISTR trong 150

Hàm Hàm CHR trong Oracle

Hàm Hàm CHR trong Oracle

Cách sử dụng hàm Hàm CHR trong 150

Hàm Hàm COMPOSE trong Oracle

Hàm Hàm COMPOSE trong Oracle

Cách sử dụng hàm Hàm COMPOSE trong 150

Hàm Hàm CONCAT trong Oracle

Hàm Hàm CONCAT trong Oracle

Cách sử dụng hàm Hàm CONCAT trong 150

Hàm Hàm CONVERT trong Oracle

Hàm Hàm CONVERT trong Oracle

Cách sử dụng hàm Hàm CONVERT trong 150

Hàm Hàm DECOMPOSE trong Oracle

Hàm Hàm DECOMPOSE trong Oracle

Cách sử dụng hàm Hàm DECOMPOSE trong 150

Hàm Hàm DUM trong Oracle

Hàm Hàm DUM trong Oracle

Cách sử dụng hàm Hàm DUM trong 150

Hàm Hàm INITCAP trong Oracle

Hàm Hàm INITCAP trong Oracle

Cách sử dụng hàm Hàm INITCAP trong 150

Hàm Hàm INSTR trong Oracle

Hàm Hàm INSTR trong Oracle

Cách sử dụng hàm Hàm INSTR trong 150

Hàm Hàm INSTR2 trong Oracle

Hàm Hàm INSTR2 trong Oracle

Cách sử dụng hàm Hàm INSTR2 trong 150

Hàm Hàm INSTR4 trong Oracle

Hàm Hàm INSTR4 trong Oracle

Cách sử dụng hàm Hàm INSTR4 trong 150

Hàm Hàm INSTRB trong Oracle

Hàm Hàm INSTRB trong Oracle

Cách sử dụng hàm Hàm INSTRB trong 150

Hàm Hàm INSTRC trong Oracle

Hàm Hàm INSTRC trong Oracle

Cách sử dụng hàm Hàm INSTRC trong 150

Hàm Hàm LENGTH trong Oracle

Hàm Hàm LENGTH trong Oracle

Cách sử dụng hàm Hàm LENGTH trong 150

Hàm Hàm LENGTH2 trong Oracle

Hàm Hàm LENGTH2 trong Oracle

Cách sử dụng hàm Hàm LENGTH2 trong 150

Hàm Hàm LOWER trong Oracle

Hàm Hàm LOWER trong Oracle

Cách sử dụng hàm Hàm LOWER trong 150

Hàm Hàm LPAD trong Oracle

Hàm Hàm LPAD trong Oracle

Cách sử dụng hàm Hàm LPAD trong 150

Hàm Hàm LTRIM trong Oracle

Hàm Hàm LTRIM trong Oracle

Cách sử dụng hàm Hàm LTRIM trong 150

Hàm Hàm NCHR trong Oracle

Hàm Hàm NCHR trong Oracle

Cách sử dụng hàm Hàm NCHR trong 150

Top