Sử dụng ký tự đại diện cho đối sánh không chính xác
So khớp mẫu SQL cho phép bạn tìm kiếm các mẫu trong dữ liệu, nếu bạn không biết chính xác từ hoặc cụm từ bạn đang tìm kiếm. Kiểu truy vấn SQL này sử dụng các ký tự đại diện để khớp với một mẫu, thay vì chỉ định nó một cách chính xác. Ví dụ: bạn có thể sử dụng ký tự đại diện "C%" để khớp với bất kỳ chuỗi nào bắt đầu bằng chữ C.
Sử dụng toán tử LIKE
Để sử dụng biểu thức ký tự đại diện trong truy vấn SQL, hãy sử dụng toán tử LIKE trong mệnh đề WHERE và kèm theo mẫu trong dấu ngoặc đơn.
Sử dụng ký tự đại diện% để thực hiện tìm kiếm đơn giản
Để tìm kiếm bất kỳ nhân viên nào trong cơ sở dữ liệu của bạn với một tên cuối cùng bắt đầu bằng chữ cái C, hãy sử dụng câu lệnh Transact-SQL sau đây:
CHỌN * TỪ nhân viên WHERE last_name LIKE 'C%'Bỏ qua các mẫu bằng cách sử dụng từ khóa NOT
Sử dụng từ khóa NOT để chọn các bản ghi không khớp với mẫu. Ví dụ, truy vấn này trả về tất cả các bản ghi có tên cuối cùng không bắt đầu bằng C:
CHỌN * TỪ nhân viên WHERE last_name KHÔNG THÍCH 'C%'Kết hợp mẫu bất kỳ ở đâu bằng cách sử dụng% Wildcard hai lần
Sử dụng hai phiên bản của ký tự đại diện % để khớp với một mẫu cụ thể ở bất kỳ đâu. Ví dụ này trả về tất cả các bản ghi có chứa C ở bất kỳ đâu trong họ:
CHỌN * TỪ nhân viên WHERE last_name LIKE '% C%'Tìm một Pattern Match tại một vị trí cụ thể
Sử dụng ký tự đại diện _ để trả về dữ liệu tại một vị trí cụ thể. Ví dụ này chỉ phù hợp nếu C xảy ra ở vị trí thứ ba của cột tên cuối cùng:
CHỌN * TỪ nhân viên WHERE last_name LIKE '_ _C%'Biểu thức ký tự đại diện được hỗ trợ trong SQL giao dịch
Có một số biểu thức ký tự đại diện được hỗ trợ bởi Transact SQL:
- Ký tự đại diện % khớp với số không hoặc nhiều ký tự thuộc bất kỳ loại nào và có thể được sử dụng để xác định ký tự đại diện cả trước và sau mẫu. Nếu bạn đã quen với việc so khớp mẫu DOS, nó tương đương với * ký tự đại diện trong cú pháp đó.
- Ký tự đại diện _ khớp chính xác với một ký tự thuộc bất kỳ loại nào. Nó tương đương với ? ký tự đại diện trong khớp mẫu DOS.
- Chỉ định danh sách các ký tự bằng cách đặt chúng trong dấu ngoặc vuông. Ví dụ: ký tự đại diện [aeiou] khớp với bất kỳ nguyên âm nào.
- Chỉ định một loạt các ký tự bằng cách đặt phạm vi trong dấu ngoặc vuông. Ví dụ: ký tự đại diện [am] khớp với bất kỳ chữ cái nào trong nửa đầu của bảng chữ cái.
- Bỏ qua một loạt các ký tự bằng cách bao gồm ký tự carat ngay bên trong dấu ngoặc vuông mở. Ví dụ: [^ aeiou] khớp với bất kỳ ký tự không nguyên âm nào trong khi [^ am] khớp với bất kỳ ký tự nào không nằm trong nửa đầu của bảng chữ cái.
Kết hợp các ký tự đại diện cho các mẫu phức tạp
Kết hợp các ký tự đại diện này trong các mẫu phức tạp để thực hiện các truy vấn nâng cao hơn. Ví dụ: giả sử bạn cần xây dựng danh sách tất cả nhân viên của bạn có tên bắt đầu bằng một chữ cái từ nửa đầu của bảng chữ cái nhưng không kết thúc bằng nguyên âm. Bạn có thể sử dụng truy vấn sau:
CHỌN * TỪ nhân viên WHERE last_name LIKE '[am]% [^ aeiou]'Tương tự, bạn có thể xây dựng danh sách tất cả các nhân viên có tên cuối cùng gồm bốn ký tự chính xác bằng cách sử dụng bốn trường hợp của mẫu _ :
CHỌN * TỪ nhân viên WHERE last_name LIKE '____'Như bạn có thể nói, việc sử dụng các khả năng khớp mẫu của SQL cung cấp cho người dùng cơ sở dữ liệu khả năng vượt ra ngoài các truy vấn văn bản đơn giản và thực hiện các hoạt động tìm kiếm nâng cao.