반응형

사막에서 바늘찾기[사막에서 바늘찾기]



안녕하세요


오늘은 빅데이터를 오라클로 사용하려면 알아둬야하는 함수 정규식 함수에 대해 알아보겠습니다.


정규식이란


문자열 데이터의 간단한 패턴 및 복잡한 패턴을 검색하고 조작할 수 있습니다.



메타문자리터럴을 사용하여 정규식을 지정합니다.



     메타문자: 검색 알고리즘을 지정하는 연산자


     리터럴: 검색 중인 문자



여기서 사용할 메타문자는 여기서 찾아보실 수 있습니다.



SQL 및 PL/SQL에서 정규식 함수의 종류


 함수 이름

  설명

 REGEXP_LIKE

 일반 like보다 더 복잡한 패턴의 데이터를

 검색할 수 있는 함수

 REGEXP_REPLACE

 일반 replace보다 더 복잡한 패턴의 데이터를

 다른 데이터로 대체하는 함수

 REGEXP_INSTR

 일반 instr보다 더 복잡한 패턴의

 철자 또는 단어의 자릿수를 찾는 함수

 REGEXP_SUBSTR

 지정된 문자열 내에서 정규식 패턴을 검색하고

 일치하는 부분 문자열을 출력하는 함수

 REGEXP_COUNT

 문장 내에서 특정 단어가 몇 번 나오는지

 출력하는 함수




예제를 통해 각각의 함수에 대해 알아보도록 하겠습니다.


[사원]


EMPNO

ENAME

JOB

SAL

DEPT

 ALLEN

 SALESMAN

 1250

 서울시 강남구

 2 

 BAKE

 SALESMAN

 1600

 서울시 강남구

 3 

 CLARK

 MANAGER

 3000

 세종시

 4 

 WARD

 CLERK

 1100

 인천광역시

 5 

 JAMES

 ANALYST

 3000

 부산광역시

 6 

 FORD

 ANALYST

 3000

 세종시

 7 

 SMITH

 CLERK

 1300

 세종시

 8 

 MILLER

 MANAGER

 2450

 서울시 강남구




예제1. 이름에 W 또든 K가 들어가는 사원들의 이름을 뽑아주세요.



메타문자 참고

 | : 또는을 의미한다.

( ... ) 괄호로 묶인 표현식을 한 단위로 취급



[결과]


EMPNO

ENAME

JOB

SAL

DEPT

 2 

 BAKE

 SALESMAN

 1600

 서울시 강남구

 3 

 CLARK

 MANAGER

 3000

 경기도 과천시

 4 

 WARD

 CLERK

 1100

 인천광역시




예제2. 부서컬럼에서 (구를 제외한) 도시명만 뽑아주세요



메타문자 참고

^ : not을 의미한다.

+ : 1이상의 문자열

 : 공백


쿼리 설명: 

dept에서 첫번째 단어( 공백을 만나기 전까지 한 단어)만 출력하는 쿼리문입니다.



[결과]


EMPNO

ENAME

JOB

SAL

DEPT

 ALLEN

 SALESMAN

 1250

 서울시

 2 

 BAKE

 SALESMAN

 1600

 서울시

 3 

 CLARK

 MANAGER

 3000

 경기도

 4 

 WARD

 CLERK

 1100

 인천광역시

 5 

 JAMES

 ANALYST

 3000

 부산광역시

 6 

 FORD

 ANALYST

 3000

 세종시

 7 

 SMITH

 CLERK

 1300

 세종시

 8 

 MILLER

 MANAGER

 2450

 서울시




예제3. '오라클사에서 만든 오라클 데이터베이스에서도

정규식 오라클 SQL함수를 제공한다'

라는 문장에서 SQL이 몇번 언급되었는지 세어주세요.




결과는 3이 출력되겠죠?


많은 문장이 들어있는 테이블에서 위의 방법으로

가장 많은, 적은 단어를 찾는 등 다양한 응용이 가능합니다.


빅데이터 중 유용한 데이터를 찾는데 도움을 주는 정규식함수를 잘 활용해봅시다~



regexp_replace함수는 전 포스팅에서 다뤘습니다.



오늘은 여기까지!


내일부터는 SQL튜닝방법으로 돌아오겠습니다!




이 글이 도움되셨다면 아래 공감 꾹~ 



반응형

+ Recent posts