LIKE 연산자의 와일드카드(%, _) 정확히 알고 쓰기

Posted by heoncode
2025. 4. 12. 16:01 SQL 기초 정리
반응형
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