개발 1도 모르는 사람

[Oracle & SQL] LIKE 에 대해서 본문

Oracle & SQL/SQL

[Oracle & SQL] LIKE 에 대해서

지구젤리귀여워 2023. 10. 26. 20:25
728x90

Oracle 에서 SELECT 를 쓰다보면

SUBSTR 나 LIKE 처럼  Column (열) 값중에서 원하는 정보를 뽑아내기 위해 자주 쓰이는 함수가 있는데

SUBSTR의 경우 주민등록번호나 전화번호 같은 고정된 자리에 있는 원하는 값을 뽑아내기 좋고

LIKE는 열에 들어있는 모든 값중에서 원하는 정보를 마구마구 뽑아낼 수 있다.

 

예를 들어 주소지에 적혀있는 "안산" 또는 "서울" 이라는 단어로 서칭을 하게되면

자연스럽게 주소지에 "안산", "서울" 이 적혀있는 값들만 출력이 되기 때문에 상당히 유용하다

단. 사용할때에 '%찾고싶은내용%' 와 같이 가둬 주어야 한다

 

아래 예제코드를 보면

 

이와 같이 안산에 위치한 카페들을 뽑아낼수 있다.

 

LIKE는 생각보다 유용한 부분이 많은데

 

이때 % 위치를 어디에다 두느냐에 따라서 정보를 캐치하는 방식이 달라진다

 

 

이처럼 뒤쪽에 쓰게 된다면 "03" 으로 시작하는 "PHONE_NUMBER" 열을 서칭하게 된다

 

하지만 "_" 라는 것이 LIKE문에서 쓰이는데 이건 생각보다 복잡하다.

앞에 방식들은 단순하게 서칭하고싶은 단어나 정보를 입력하면 그거에 맞춰서 뽑게 되는데

"_' 이 언더바 는 임의에 문자나 숫자가 오게된다

예를들어 FRUIT 라는 테이블에 FRUIT_NAME 컬럼이 있다면  그 안에 APLLE 있다고 가정한 후 서칭을 하면 

SELECT FRUIT_NAME FROM FRUIT
WHERE FRUIT_NAME LIKE 'APP__';

서칭 결과에서 APPLE 이 나오게 된다.  만약  그냥 FRUIT_NAME 안에  APPWN , APPNW , APPWZ , APPNM , APP12와

같은 것들도 같이 서칭이 된다. 숫자도 포함되니 숫자를 넣어도 결과는 다르지 않다.

 

찾아보는게 생각보다 재밋었어서 시간만 주어진다면 많이 알고 가고싶다