공부/데이터베이스

[데이터베이스] 오라클 정규식을 이용한 패턴 연산

ghhong 2021. 10. 21. 15:55

ㅇ 정규식을 이용한 패턴 연산(https://regexlib.com/CheatSheet.aspx)

SELECT * FROM NOTICE WHERE TITLE LIKE '%-%-%'; --전화번호 찾기. 숫자 외에도 찾아짐.

SELECT * FROM NOTICE WHERE REGEXP_LIKE(TITLE , ’01[016-9]-\d{3,4}-\d{4}’);

 

시작과 끝이 맞는 패턴 검색은 앞에 ^ 뒤에 $를 넣어준다.'^01[016-9]-\d{3,4}-\d{4}$'

 

이메일형식:

\D\w+@\D\w+.(org|net|com)

\D\w+ : 숫자 아닌 문자 하나 이상

(org|net|com) : 셋 중 하나

 

 ROWNUM, 행 제한하기

ROWNUM : 오라클에서 결과집합을 만들 때 ROWNUM이라는 컬럼이 추가된다.

SELECT * FROM MEMBER WHERE ROWNUM BETWEEN 1 AND 5;

-- 결과집합을 만들 때 만들어진다. 처음 생성되는 ROWNUM1이므로 1보다 큰 값과 비교할 때 항상 결과가 생성되지 않는다.

ð SELECT * FROM (SELECT ROWNUM NUM, MEMBER.* FROM MEMBER) WHERE NUM BETWEEN 1 AND 5; -- *은 다른 컬럼과 함께 사용하지 못한다. -> MEMBER.*으로 한정.

ð 내부의 SELECT문이 먼저 실행되도록 소괄호로 묶어준다.

ð 내부의 ROWNUM을 별칭을 사용하지 않고 밖에서도 ROWNUM을 사용하게 되면 밖의 ROWNUM을 기준으로 검색하기 때문에 내부의 ROWNUM에 별칭을 사용한다.