SQL의 LIKE 키워드는 문자열 패턴을 기반으로 데이터를 필터링하는 데 사용됩니다. 이 글에서는 LIKE 키워드의 기본 구문, 사용 예시, 그리고 다양한 패턴 매칭 방법들을 자세히 설명합니다.
기본 구문
LIKE 키워드의 기본 구문은 다음과 같습니다.
SELECT column1, column2, ...
FROM table_name
WHERE column LIKE pattern;
- column: 패턴 매칭을 적용할 열 이름입니다.
- pattern: 매칭할 문자열 패턴입니다.
패턴 매칭 연산자
LIKE 키워드에서 사용하는 주요 패턴 매칭 연산자는 다음과 같습니다:
% (퍼센트 기호)
-임의의 문자열을 매칭합니다.
- 예: LIKE '%pattern%'는 'pattern'이 포함된 모든 문자열을 매칭합니다.
_ (언더스코어)
-임의의 한 문자를 매칭합니다.
- 예: LIKE '_pattern'는 첫 번째 문자가任意이고 'pattern'이 뒤따르는 문자열을 매칭합니다.
[ ] (대괄호)
- 지정된 문자 집합 내의 문자를 매칭합니다.
- 예: LIKE '[abc]'는 'a', 'b', 또는 'c' 문자를 포함하는 문자열을 매칭합니다.
[^ ] (대괄호 내에 캐럿 기호)
- 지정된 문자 집합 외의 문자를 매칭합니다.
- 예: LIKE '[^abc]'는 'a', 'b', 또는 'c' 문자를 포함하지 않는 문자열을 매칭합니다.
사용 예시
문자열 포함 여부 확인
다음 예시는 customers 테이블에서 고객 이름에 'son'이 포함된 모든 고객을 조회하는 쿼리입니다.
SELECT *
FROM customers
WHERE last_name LIKE '%son%';
특정 문자로 시작하는 문자열
다음 예시는 products 테이블에서 제품 이름이 'A'로 시작하는 모든 제품을 조회하는 쿼리입니다.
SELECT *
FROM products
WHERE product_name LIKE 'A%';
특정 문자가 포함된 문자열
다음 예시는 orders 테이블에서 주문 번호가 '123'을 포함하는 모든 주문을 조회하는 쿼리입니다.
SELECT *
FROM orders
WHERE order_id LIKE '%123%';
임의의 한 문자를 포함하는 문자열다음 예시는 customers 테이블에서 고객 이름의 두 번째 문자가 'o'인 모든 고객을 조회하는 쿼리입니다.
SELECT *
FROM customers
WHERE last_name LIKE '_o%';
성능 고려 사항
- 인덱스 사용: LIKE 연산자에서 % 기호가 앞에 오는 경우, 인덱스를 효율적으로 사용할 수 없습니다. 따라서, % 기호를 뒤에 두는 것이 성능을 향상시킬 수 있습니다.
- 복잡한 패턴 피하기: 너무 복잡한 패턴을 사용하면 쿼리 성능이 저하될 수 있으므로, 간단하고 효율적인 패턴을 사용하는 것이 중요합니다.
결론
LIKE 키워드는 문자열 패턴을 기반으로 데이터를 필터링하는 데 매우 유용한 도구입니다. 다양한 패턴 매칭 연산자를 사용하여 복잡한 문자열 조건을 간단하게 처리할 수 있으며, 대소문자 무시와 인덱스 사용을 고려하여 성능을 최적화할 수 있습니다. 이 정보를 통해, 데이터베이스에서 데이터를 효율적으로 필터링하고 조회할 수 있을 것입니다.
'MySQL' 카테고리의 다른 글
| MySQL에서 SUM 함수 활용하기 (0) | 2024.11.28 |
|---|---|
| MySQL에서 COUNT 함수 활용하기 (0) | 2024.11.28 |
| MySQL에서 LIMIT 키워드 활용하기 (0) | 2024.11.28 |
| MySQL에서 ORDER BY 키워드 활용하기 (0) | 2024.11.28 |
| MySQL에서 DISTINCT 키워드 활용하기 (0) | 2024.11.28 |