Oracle THÍCH

Oracle Thich



Trong Oracle và các cơ sở dữ liệu quan hệ khác, khớp mẫu là một tính năng phổ biến cho phép bạn tìm kiếm các mẫu chuỗi bằng các cú pháp đặc biệt. Ví dụ: bạn có thể tìm kiếm một chuỗi con trong một tập hợp lớn các chuỗi bằng cách sử dụng các toán tử và hàm khớp mẫu.

Điều này làm cho nó rất hữu ích để xây dựng các mệnh đề tìm kiếm đơn giản mà không phải chịu các hình phạt hiệu suất đáng kể trên cơ sở dữ liệu.







Trong hướng dẫn này, bạn sẽ bắt gặp toán tử LIKE trong Oracle để thực hiện các truy vấn khớp mẫu.



Toán tử THÍCH của Oracle

Toán tử LIKE trong Oracle cho phép bạn tìm kiếm một mẫu cụ thể trong một cột nhất định. Ví dụ: bạn có thể sử dụng nó để tìm tất cả các hàng có tên của khách hàng bắt đầu bằng mẫu 'Ja'.



Bạn sẽ thường thấy toán tử này được sử dụng cùng với các mệnh đề SQL khác, chẳng hạn như mệnh đề WHERE, để lọc kết quả của chúng tôi dựa trên một mẫu cụ thể.





Chúng ta có thể biểu diễn cú pháp của toán tử LIKE trong SQL như hình dưới đây:

mẫu biểu thức THÍCH [ TẨU THOÁT 'escape_character' ]



  1. Tham số biểu thức chỉ định cột mà bạn muốn tìm kiếm.
  2. Tham số mẫu xác định mẫu cụ thể mà bạn muốn tìm kiếm. Mẫu đã chỉ định có thể chứa các ký tự đại diện như % và _ để khớp với bất kỳ số ký tự nào hoặc một ký tự đơn tương ứng.
  3. Chúng tôi cũng có thể bao gồm mệnh đề ESCAPE để chỉ định một ký tự thoát được sử dụng để tìm kiếm các ký tự đại diện thực tế.

Các ví dụ về toán tử LIKE của Oracle

Các ví dụ sau minh họa cách sử dụng toán tử LIKE trong bảng Oracle.

Giả sử chúng ta có một bảng chứa thông tin khách hàng như hình bên dưới:

Ví dụ 1 – Sử dụng % ký tự đại diện

Chúng tôi có thể sử dụng các ký tự đại diện % để khớp với bất kỳ chuỗi nào có 0 hoặc nhiều ký tự. Ví dụ: chúng tôi có thể tìm thấy tất cả các mục trong bảng có chứa Tên 'Will%'.

Lấy bảng nhân viên hiển thị bên dưới:

lựa chọn first_name, last_name, lương
từ NHÂN VIÊN
nơi mà FIRST_NAME thích 'Sẽ%'
sắp xếp theo first_name;

Truy vấn trước đó chọn các cột first_name, last_name và lương từ bảng nhân viên và sắp xếp các giá trị kết quả theo cột first_name.

Chúng tôi cũng kết hợp mệnh đề where cùng với toán tử LIKE với ký tự đại diện % để chỉ tìm nạp các hàng có tên bắt đầu bằng 'Will'.

Điều này sẽ trả về các hàng dưới dạng:

Chúng ta cũng có thể sử dụng ký tự đại diện % để tìm nạp các hàng kết thúc bằng một mẫu cụ thể.

Một ví dụ đã được biểu diễn ở dưới:

lựa chọn first_name, last_name, lương
từ NHÂN VIÊN
nơi mà FIRST_NAME thích '%Là'
sắp xếp theo first_name;

Trong trường hợp này, truy vấn trước đó sẽ trả về tất cả các hàng có tên kết thúc bằng 'er'. Một ví dụ giá trị kết quả được hiển thị dưới đây:

Theo mặc định, toán tử LIKE của cơ sở dữ liệu Oracle phân biệt chữ hoa chữ thường, vì vậy điều cần thiết là phải ghi nhớ điều này trong khi tìm kiếm các mẫu cụ thể. Bạn có thể sử dụng các hàm khác, chẳng hạn như hàm dưới và hàm trên, để loại bỏ hành vi này.

Ví dụ 2 – Sử dụng Mệnh đề Escape

Ví dụ sau minh họa cách sử dụng mệnh đề ESCAPE trong toán tử LIKE của Oracle:

lựa chọn first_name, last_name, lương, hoa hồng_pct
từ NHÂN VIÊN
nơi hoa hồng_pct thích 'hai mươi\%' tẩu thoát '\' ;

Truy vấn trước đó chọn các cột first_name, last_name, lương và hoa hồng_pct từ bảng NHÂN VIÊN. Mệnh đề WHERE sử dụng toán tử LIKE với mệnh đề ESCAPE để tìm nạp các bản ghi trong đó cột commission_pct chứa chuỗi '20%' (với ký tự % bằng chữ, không phải ký tự đại diện).

Trong trường hợp này, chúng tôi thoát ký tự % bằng ký tự dấu gạch chéo ngược (\) khi tìm kiếm chuỗi 20%. Điều này cho phép toán tử LIKE tìm kiếm chuỗi chính xác '20%' thay vì coi ký tự % là ký tự đại diện.

Truy vấn này sẽ trả về tất cả các hàng từ bảng EMPLOYEES trong đó cột commission_pct chứa chuỗi chính xác '20%', cùng với các cột first_name, last_name và lương cho các hàng đó.

Phần kết luận

Trong bài đăng này, bạn đã học cách sử dụng toán tử LIKE trong cơ sở dữ liệu Oracle để tìm kiếm các mẫu cụ thể trong một bảng. Một số ví dụ được cung cấp để làm nổi bật bằng cách sử dụng các ký tự đại diện và mệnh đề ESCAPE.