WILDCARD hay còn được gọi là kí tự đại diện được sử dụng cùng với câu lệnh LIKE trong SQL để so sánh một giá trị với các giá trị tương tự.
SQL hỗ trợ hai toán tử đại diện kết hợp với toán tử LIKE là kí hiệu phần trăm (%) và dấu gạch dưới (_).
Operator | Description |
% | Đại diện cho một hoặc nhiều ký tự. |
_ | Đại diện cho cho một kí tự đơn. |
[range_of_characters] | Khớp với một tập hợp hay một khoảng phạm vi ký tự |
[^range_of_characters] or [!range of characters] | Không khớp với một tập hợp hay một khoảng phạm vi ký tự |
Cú pháp sử dụng WILDCARD trong SQL
SELECT column1,column2 FROM table_name WHERE column LIKE wildcard_operator; column1 , column2: fields in the table table_name: name of table column: name of field used for filtering data
Ví dụ sử dụng toán tử đại diện
Ví dụ 1: Lấy các Student có NAME kết thúc bằng chữ T.
SELECT * FROM Student WHERE NAME LIKE '%T';
Output
ROLL_NO | NAME | ADDRESS | PHONE | Age |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
Ví dụ 2: Lấy các Student có tên bắt đầu bằng RAMES,
SELECT * FROM Student WHERE NAME LIKE 'RAMES_';
Output
ROLL_NO | NAME | ADDRESS | PHONE | Age |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
Ví dụ 3: Lấy các Student có ADDRESS chứa các ký tự ‘a’, ‘b’, ‘c’.
SELECT * FROM Student WHERE ADDRESS LIKE '%[A-C]%';
Output
ROLL_NO | NAME | ADDRESS | PHONE | Age |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
Ví dụ 4: Lấy các Student có ADDRESS không chứa các ký tự ‘a’, ‘b’, ‘c’.
SELECT * FROM Student WHERE ADDRESS LIKE '%[^A-C]%';
Output:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
1 | Ram | Delhi | XXXXXXXXXX | 18 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
Ví dụ 5: Lấy các Student với trường PHONE có ‘9’ ở vị trí đầu tiên và ‘5’ ở vị trí thứ 4.
SELECT * FROM Student WHERE PHONE LIKE '9__5%';
Ví dụ 6: Tìm nạp các bản ghi từ bảng Sinh viên với ADDRESS chứa tổng cộng 6 ký tự.
SELECT * FROM Student WHERE ADDRESS LIKE '______';
Output:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
Ví dụ 7: Tìm nạp các bản ghi từ bảng Sinh viên với ĐỊA CHỈ chứa ‘OH’ ở bất kỳ vị trí nào và tập kết quả không được chứa dữ liệu trùng lặp.
SELECT DISTINCT * FROM Student WHERE ADDRESS LIKE '%OH%';
Output:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
Trên đây là tất cả các ví dụ có thể mô tả hầu hết các trường hợp chúng ta cần sử dụng với toán tử đại diện. Hy vọng nó sẽ giúp ích cho các bạn.
Nguồn tham khảo