Ký tự đại diện là các ký tự giúp tìm kiếm dữ liệu phù hợp với những tiêu chí phức tạp. Ký tự đại diện được sử dụng cùng với toán tử so sánh LIKE hoặc NOT LIKE trong SQL. Vậy cách sử dụng các ký tự đại diện này như nào? Cùng Gitiho tìm hiểu ngay nhé.
Nếu bạn quen với việc sử dụng SQL, bạn có thể nghĩ rằng bạn có thể tìm kiếm bất kì dữ liệu phức tạp nào bằng cách sử dụng câu lệnh SELECT và mệnh đề WHERE. Vậy tại sao lại phải dùng ký tự đại diện?
Ký tự đại diện giúp chúng ta thực hiện truy vấn linh hoạt hơn bằng cách tìm kiếm các chuỗi khớp một phần thay vì khớp chính xác. Nó phù hợp khi bạn muốn tìm kiếm các giá trị có số lượng ký tự dài.
Ngoài ra, bạn cũng có thể tìm kiếm những dữ liệu không đồng nhất hoặc ký tự có sai sót trong quá trình nhập liệu. Nó cũng ứng dụng rộng rãi trong tìm kiếm văn bản của database như địa chỉ, email, hay ghi chú khách hàng,… để lấy dữ liệu làm báo cáo.
Ký tự % được sử dụng để chỉ định một mẫu có 0 hoặc nhiều ký tự hơn. Nó có cú pháp cơ bản sau:
SELECT <các_cột>
FROM <tên_bảng>
WHERE <tên_cột> LIKE 'chuỗi%';
Trong đó:
Ví dụ: Chúng ta hãy xem xét một ví dụ thực tế. Giả sử chúng ta muốn lấy danh sách tất cả khách hàng đang sống ở thành phố bắt đầu với chuỗi ký tự “ber”
Cú pháp như sau:
SELECT * FROM Customers
WHERE City LIKE 'ber%';
Thực hiện chạy câu lệnh trên, chúng ta sẽ thu được kết quả có 3 bản ghi như sau:
Ký tự đại diện gạch dưới được dùng để khớp chính xác một ký tự. Giả sử rằng chúng ta muốn tìm kiếm tất cả khách hàng có dữ liệu trường City bắt đầu với bất kỳ ký tự nào theo sau là ‘odon’.
Bạn dùng câu lệnh sau để thực hiện yêu cầu:
SELECT * FROM Customers
WHERE City LIKE '_ondon';
Thực thi câu lệnh trên trong MySQL cho ra kết quả sau:
Lưu ý rằng chỉ những City được theo sau bởi ký tự ‘ondon’ mới được trả về trong bộ kết quả.
Toán tử logic NOT có thể được sử dụng cùng với các ký tự đại diện để trả về các hàng không khớp với mẫu đã chỉ định.
Ví dụ tìm tất cả nhân viên không có tên bắt đầu bằng “John” trong bảng dữ liệu. Ta dùng câu lệnh sau:
SELECT *
FROM employees
WHERE full_name NOT LIKE 'John%';
Điều kiện NOT LIKE 'John%' trong cú pháp trên sẽ trả về tất cả các nhân viên mà tên không bắt đầu bằng "John".
Từ khóa ESCAPE được sử dụng để thoát khỏi các ký tự khớp mẫu như phần trăm (%) và dấu gạch dưới ( _ ) nếu chúng là một phần của dữ liệu.
Ví dụ: Hãy tìm kiếm chuỗi chứa ký tự _ thực sự: Giả sử bạn muốn tìm những tên sản phẩm có chứa ký tự '_', bạn sẽ viết câu lệnh sau:
SELECT product_code
FROM products
WHERE product_code LIKE '%!%%' ESCAPE '!';
Ở đây, ! là ký tự thoát, và _ được tìm kiếm như một ký tự thực sự trong chuỗi.
Kết quả có thể trả về các sản phẩm như product_123, item_456
Trên đây là hườn dẫn về các ký tự đại diện trong SQL phổ biến kèm ví dụ chi tiết. Các bạn có thể truy cập ngay Gitiho.com để tìm hiểu thêm các khóa học về SQL, lập trình VBA, C#… và rất nhiều khóa học bổ ích khác. Chúng tôi có rất nhiều ưu đãi đang dành cho bạn. Cảm ơn bạn đã đọc bài viết.
Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.
Đăng ký học thử để trải nghiệm ngay hôm nay!