LIKE 연산자의 와일드카드(%, _) 정확히 알고 쓰기
반응형
SMALL
LIKE 연산자는 SQL에서 문자열 패턴을 검색할 때 자주 사용되는 조건입니다. 특히 %
와 _
와 같은 와일드카드(wildcard) 문자를 적절히 활용하면 유연한 문자열 검색이 가능합니다. 그러나 이러한 와일드카드의 의미를 명확히 이해하지 못하면, 원하지 않는 결과를 얻을 수 있습니다.
1. 와일드카드 종류와 의미
LIKE 조건에서 사용 가능한 와일드카드는 다음과 같습니다:
%
: 길이에 상관없이 모든 문자열을 의미합니다. 0자 이상._
: 임의의 한 글자를 의미합니다.
예시:
SELECT * FROM employee
WHERE name LIKE '김%';
→ 이름이 '김'으로 시작하는 모든 직원 검색
SELECT * FROM employee
WHERE name LIKE '_현우';
→ 앞에 어떤 한 글자가 있고, 뒤에 '현우'가 오는 이름 검색 (예: '이현우', '박현우')
2. 실제 사용 예시
다음은 %
와 _
를 함께 사용하는 예시입니다:
SELECT * FROM product
WHERE code LIKE 'A__%';
→ 'A'로 시작하고, 그 뒤에 정확히 두 글자가 있으며, 그 이후에 문자열이 이어지는 상품 코드 검색
3. ESCAPE 문자를 활용한 예외 처리
만약 검색하려는 문자열에 %
나 _
가 포함되어 있다면, 이를 문자 그대로 검색하기 위해 ESCAPE
절을 사용할 수 있습니다.
SELECT * FROM memo
WHERE content LIKE '%!%%' ESCAPE '!';
→ 메모 내용에 실제 %
문자가 포함된 항목 검색
4. 주의할 점
%
는 넓은 범위의 검색을 유도하기 때문에, 인덱스를 잘 타지 않습니다.- 문자열 앞에
%
가 오면 인덱스 미사용이 될 가능성이 높습니다. - 성능 최적화가 중요한 상황에서는 가급적 LIKE 조건 대신 FULLTEXT 검색이나 정규표현식 등을 사용하는 것이 유리할 수 있습니다.
SQL에서 LIKE 연산자를 단순히 ‘포함 조건’ 정도로만 이해하고 사용하는 경우가 많습니다. 하지만 와일드카드의 특성과 인덱스 영향까지 고려하면 보다 정확하고 성능 좋은 쿼리를 작성할 수 있습니다.
#SQL기초 #LIKE연산자 #SQL와일드카드 #문자열검색 #SQL쿼리팁
반응형
LIST
'SQL 기초 정리' 카테고리의 다른 글
ORDER BY의 숨겨진 비용 – 정렬은 왜 성능을 떨어뜨릴까? (0) | 2025.04.13 |
---|---|
IN 절 vs EXISTS 절 – 조건은 같아도 성능은 다르다 (0) | 2025.04.12 |
CTE(Common Table Expressions)의 활용법 – 서브쿼리보다 명확한 쿼리 작성 (0) | 2025.04.12 |
CASE WHEN 구문의 활용법 – 조건 분기와 표현식을 동시에 해결하는 방법 (0) | 2025.04.11 |
COUNT(*)와 COUNT(컬럼명)의 차이 – 결과는 비슷해도 의미는 다르다 (0) | 2025.04.11 |