Cách dùng các ký tự đại diện trong SQL: Like, NOT Like, Escape, ( % ), ( _ )

Nội dung được viết bởi G-LEARNING

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

Tại sao chúng ta cần sử dụng ký tự đại diện?

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

Các loại ký tự đại diện

Phần trăm %

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 đó:

  • %: Đại diện cho bất kỳ số lượng ký tự nào (bao gồm cả không có ký tự nào).
  • LIKE: Được sử dụng để thực hiện tìm kiếm các chuỗi dựa trên mẫu chứa ký tự đại diện.

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ự Phần trăm %

Ký tự gạch dưới _

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:

Ký tự gạch dưới _

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

NOT LIKE

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

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

Kết luận

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!

/5 - ( bình chọn)

/5 - ( bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông