본문 바로가기
DBMS/ORACLE

[ORACLE] SELECT문 LIKE 연산자 (ft. REGEXP_LIKE)

by 썸머워즈 2019. 2. 7.
반응형

오라클 LIKE 연산자에 대해 알아보자.

 

LIKE라는 영어는 같은, ~와 비슷한 등의 의미를 가지고 있는데,

그 의미 그대로 비슷한 내용을 검색하는데 사용되는 연산자이다.

 

구문은 아래와 같다.


▷ [구문 - 1 ] '%'

WHERE [컬럼명] LIKE '%%%%'

 

위 구문에서 사용된 '%'"0개 이상의 문자로 길이와 상관이 없다." 라는 의미를 가진다.

1) 앞자리가 ze로 시작하는 문자열 : 'ze%' (앞에가 ze로 시작하는 모든 값들을 가져와라.)

2) 뒷자리가 com으로 끝나는 문자열 : '%com' (com으로 끝나는 모든 값들을 가져와라.)

3) 문장중에 a와 n을 포함하는 문자열 : '%a%n%' (어느 위치에 있는지 모르겠지만, 문장중에 a와 n을 포함하는 모든 값들을 가져와라.)

 

예제 1) '%' 사용한 LIKE 연산자

SELECT * FROM employees WHERE email LIKE 'ze%';
SELECT * FROM employees WHERE email LIKE '%com';

--앞뒤로 뭐가 오든 상관없는데 '재' 를 포함하는 모든 값을 가져와라.
SELECT * FROM employees WHERE first_name LIKE '%재%';

추가적으로 '%' 이 표시 말고도 하나 더 사용하는 표시가 있는데, 언더바('_') 이다.

 

▷ [구문 - 2 ] '_'

WHERE [컬럼명] LIKE '_검_색_어_'

 

위 구문에서 사용된 '_'"한자리만 임의의 문자를 허용한다." 라는 의미를 가진다.

1) 앞자리가 H로 시작하는 두자리 문자열 : 'H_' (앞에가 H로 시작하는 길이가 2인 모든 값들을 가져와라.)

2) 뒷자리가 com으로 끝나는 문자열 : '__com' (com으로 끝나고 com앞에 두자리가 붙어있는 모든 값들을 가져와라.)

 

예제 2) '-' 사용한 LIKE 연산자

SELECT * FROM employees WHERE email LIKE 'ze_';
SELECT * FROM employees WHERE email LIKE '__com';

LIKE 연산자의 기본 구문들에 대해 배워봤는데,

'%' 와 '_' 표현식은 각각 길이의 제한이 없는 조건, 한자리만을 무시해주는 조건을 의미한다.

 

그리고 추가적으로 '%' 와 '_' 표현식은 여러개로 조합하여 사용이 가능하다.

 

예제 3) '%' 와 '-' 를 동시 사용한 LIKE 연산자

SELECT * FROM employees WHERE email LIKE '_com%';

몇가지 LIKE 를 사용한 예제를 좀 더 알아보자.

 

예제 4) LIKE의 반대 NOT LIKE 연산자

SELECT * FROM employees WHERE email NOT LIKE '%com';

그냥 단순하게 LIKE의 반대라고 생각하면 된다.

 

예제 5) 다중 LIKE 연산자

-- OR을 사용한 다중 LIKE 연산자
SELECT * FROM employees WHERE (name LIKE '%한%' OR name LIKE '%은%')

-- 정규식을 사용한 다중 LIKE 연산자 (REGEXP_LIKE)
SELECT * FROM employees WHERE REGEXP_LIKE( name , '한|김|피');

정규식 표현법에 대해서는 따로 찾기를 권장한다.


'%' 와 '_'에 대해 ESCAPE를 알아두면 좋으니 아래 글도 한번 봐주도록 하자.

 

https://mine-it-record.tistory.com/101

 

[ORACLE]오라클_ESCAPE( LIKE시 '%' , ' _ ' 포함된 문자 검색 )

ESCAPE - LIKE 연산으로 '%' 나 '_' 가 포함된 문자를 검색하고자 할때 사용된다. - '%'나 '_' 앞에 ESCAPE로 특수문자를 지정하면 검색할 수 있다. - 특수문자는 아무거나 상관없이 사용 가능하다. 특수문

mine-it-record.tistory.com

 

반응형


댓글

TOP