REGEXP_LIKE함수는 간단하게 설명드리자면 저희는 특정 문자열 포함을 검색할 때 LIKE함수를 사용하는데
시작 문자가 010,011,016인 문자열을 출력 할때 저희는 불편하게 or을 사용하여 나타내야 합니다.
REGEXP_LIKE는 이 불편함을 해결해줄뿐만 로그인 아이디가 이메일 형식인지 비밀번호가 특수문자를 포함했는지 등 포맷 일치를 확인하고 싶을 때도 유용하게 쓰일 것 같습니다. (설명이 부족한 거 같아 죄송합니다 꾸벅)
사용법도 역시 너무 간단합니다 ㅎㅎ
REGEXP_LIKE( ) 함수
REGEXP_LIKE(컬럼, 조건);
ex1) 소문자를 포함하고있는 행 출력
SELECT * FROM TEST WHERE REGEXP_LIKE(PASSWORD, '[a-z]');
ex2) 소문자를 포함하고있지 않은 행 출력
SELECT * FROM TEST WHERE NOT REGEXP_LIKE(PASSWORD, '[a-z]'); //포함하고 있지 않는 행을 찾을 땐
NOT 추가!!
ex3) 특수문자 !를 포함하고 있는 행 출력
SELECT * FROM TEST WHERE REGEXP_LIKE(PASSWORD, '\!'); //문자를 검색할 땐 탈출 문자 사용!!
ex4) 특수문자를 포함하고 있는 행 출력
SELECT * FROM TEST WHERE REGEXP_LIKE(PASSWORD, '[[:digit:]]');
ex5) 시작문자가 010,011,016중 하나를 포함하고 있는 행 출력
SELECT * FROM TEST WHERE REGEXP_LIKE(phone_number, '^010|^011|^016'); // ^는 시작 문자를 나타냄
ex6) 소문자 대문자 상관없이 시작문자가 5글자 이상이고 다음으로 @문자를 포함하고 있는 행 출력
SELECT * FROM TEST WHERE REGEXP_LIKE(email, '[a-zA-Z]{5}\@');
이것보다 더 다양하게 많이 쓰실 수 있습니다 ㅎㅎ
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/010.gif)
'데이터베이스 > Oracle' 카테고리의 다른 글
Oracle 문자열 변경 함수 REGEXP_REPLACE(정규식조사) (0) | 2021.10.17 |
---|---|
Oracle if 조건 함수 DECODE() (0) | 2021.10.13 |
Oracle null값을 만나면 다른 값으로 치환해주는 함수 NVL() ,NVL2() (0) | 2021.10.13 |
Oracle "quoted string not properly terminated" 에러 (0) | 2021.10.13 |
Oracle 문자열에서 문자검색 INSTR (0) | 2021.10.13 |