SQL - LIKE 와일드 카드 사용 가이드(%, [], ^, _) 및 예시 샘플 코드

반응형

와일드카드란? 와일드카드 문자란? (WildCard)

  • 와일드카드는 패턴 매칭을 위해 사용되는 문자
  • 패턴에 일치하는 문자열을 효과적으로 검색하거나 필터링하기 위해 사용
  • SQL에서 주로 WHERE 절의 LIKE 연산자와 함께 사용
  • 여러 가지 와일드카드 문자(%, [], ^, _)가 존재
  • 즉, 데이터를 더 쉽게 검색하여 원하는 결과를 얻기 위한 목적으로 사용

와일드카드 : % (백분율 문자) 

% : 하나 이상의 일치하는 문자 찾기

 

개념

0개 이상의 문자를 나타낸다.

즉, 임의의 문자열을 대체할 수 있다.

예를 들어, 'a%''a'로 시작하는 모든 문자열을 나타낸다.

 

사용 방법

'e%' : 문자 'e'로 시작하는 모든 문자열을 나타낸다.

'%e' : 문자 'e로 끝나는 모든 문자열을 나타낸다.

'%e%' : 문자 'e'가 중간에 포함되는 모든 문자열을 나타낸다.

'e%l' : 문자 'e'로 시작하고 'l'로 끝나는 모든 문자열을 나타낸다.

 

예시

와일드카드 %를 설명하기 위한 예시 테이블 이미지
와일드카드 %를 설명하기 위한 예시 테이블 이미지

 

'cheon'으로 끝나는 문자열을 like 조회해보기

SELECT
	*
FROM
	t1
WHERE
	address LIKE '%cheon'

와일드카드 %를 사용하여 like 조회한 테이블 결과
와일드카드 %를 사용하여 like 조회한 테이블 결과


와일드카드 : [] (일치하는 문자)

[] : 대괄호 안에 있는 문자 중 하나 이상의 일치하는 문자 찾기

 

개념

대괄호 안에 있는 문자 중 하나를 나타낸다.

대괄호 안에 있는 어떤 문자든 해당 자리에 올 수 있다.

예를 들어, 't[ae]st''tast''test' 두 문자열과 일치한다.

 

사용 방법

'[abc]' : 단일 문자를 매칭하는 방법으로, 'a', 'b', 'c' 중 하나와 일치하는 문자열을 나타낸다.

'[a-z]' : 범위를 지정하여 매칭하는 방법으로, 대괄호 안에 두 문자 사이에 하이픈(-)을 사용하여 문자 범위를 지정할 수 있다. 알파벳 소문자 a부터 z까지 일치하는 문자열을 나타낸다.

'[a-zA-Z0-9]' : 여러 조합을 사용하여 매칭하는 방법으로, 영어 소문자와 대문자, 숫자 중 하나와 일치하는 문자열을 나타낸다.

 

예시

와일드카드 []를 설명하기 위한 예시 테이블 이미지
와일드카드 []를 설명하기 위한 예시 테이블 이미지

 

'i', 's'로 시작하는 문자열을 like 조회해보기

SELECT
	*
FROM
	t1
WHERE
	address LIKE '[is]%'

와일드카드 []를 사용하여 like 조회한 테이블 결과
와일드카드 []를 사용하여 like 조회한 테이블 결과


와일드카드 : [^] (일치하지 않는 문자)

[^] : 대괄호 안에서 문자와 불일치하는 문자 찾기

 

개념

대괄호 안에서 ^를 사용하면 해당 문자를 제외한 나머지 문자를 나타낸다.

예를 들어, '[^0-9]'는 숫자가 아닌 문자와 일치하는 문자열을 찾는다.

 

사용 방법

'[^0-9]' : 숫자를 포함하지 않는 문자열을 나타낸다.

'[^0-9]abc' : 숫자를 포함하지 않고 'abc'가 포함된 문자열을 나타낸다.

 

예시

와일드카드 [^]를 설명하기 위한 예시 테이블 이미지
와일드카드 [^]를 설명하기 위한 예시 테이블 이미지

 

문자 중간에 'eo'가 포함되며, 'eo' 뒤에 'u' 문자열이 포함되지 않는 문자열을 like 조회해보기 (eou는 검색하지 않기)

SELECT
	*
FROM
	t1
WHERE
	address LIKE '%eo[^u]%'

와일드카드 [^]를 사용하여 like 조회한 테이블 결과
와일드카드 [^]를 사용하여 like 조회한 테이블 결과


와일드카드 : _ (한 문자와 일치)

_ : 하나의 문자가 어떠한 문자든 상관없이 문자열 찾기

 

개념

하나의 문자를 나타낸다.

즉, 어떠한 문자든 하나의 문자에 된다.

예를 들어, 't_st''test', 'tast', 'tost' 등과 일치한다.

 

사용 방법

'c_t' : c와 t로 된 세 글자 문자에서 중간 문자는 상관없이 문자열을 조회한다. 'cat', 'cAt', 'cut' 등, 어떠한 문자든 하나의 문자로 대응한다.

'_ _34' : 앞 두 글자가 어떠한 문자가 와도 34가 포함된 네 글자의 문자열을 조회한다. '1234', 'AB34' 등을 일치하지만 '234'를 일치시키진 않는다.

 

예시

와일드카드 [_]를 설명하기 위한 예시 테이블 이미지
와일드카드 [_]를 설명하기 위한 예시 테이블 이미지

 

문자 중간에 'e'로 시작하고 'u'로 끝나는 세 글자 문자열을 like 조회해보기 (exu에서 x는 어떤 문자가 와도 상관하지 않음)

SELECT
	*
FROM
	t1
WHERE
	address LIKE '%e_u%'

와일드카드 [_]를 사용하여 like 조회한 테이블 결과
와일드카드 [_]를 사용하여 like 조회한 테이블 결과


참고

 

 

반응형