DB/오라클(Oracle)

[Oracle] 오라클 LIKE 사용법

푸코잇 2023. 11. 25. 00:10

 

우리는 가끔 특정 문자를 포함한 데이터를 찾고 싶을 때가 있다.

오라클에서는 LIKE를 이용하면 간단하게 해결된다.

 

LIKE 사용법

SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김%';

ORACLE-LIKE

 

와일드카드(%)는 모든 문자가 와도 상관없다.

LIKE '김%'를 통해 김씨로 시작하는 플레이어 이름을 찾았다.

 

SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김_';

ORACLE-LIKE

 

특정 문자열 자릿수를 제한해서 찾고 싶다면 언더바(_)를 사용하면 된다.

LIKE '김_'를 통해 김씨로 시작하지만 외자인 플레이어 이름을 찾았다.

 

SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME NOT LIKE '김%';

-- 표준 NOT LIKE
SELECT PLAYER_NAME FROM PLAYER WHERE NOT PLAYER_NAME LIKE '김%';

ORACLE-NOT-LIKE

 

특정 문자열을 포함하지 않는 문자열을 찾고 싶다면 NOT LIKE를 사용하면 된다.

NOT LIKE를 통해 김씨로 시작하지 않는 플레이어 이름을 찾았다.

 

LIKE 여러개(OR, REGEXP_LIKE)

SELECT PLAYER_NAME FROM PLAYER WHERE PLAYER_NAME LIKE '김%' OR PLAYER_NAME LIKE '정%';
SELECT PLAYER_NAME FROM PLAYER WHERE REGEXP_LIKE(PLAYER_NAME, '^김|^정');

 

LIKE 여러개를 사용하려면 OR이나 REGEXP_LIKE를 사용하면 된다.

REGEXP_LIKE는 오라클 10g부터 지원하는 함수이다.

^는 표현식의 시작, |는 OR조건을 의미한다.