정규식
▶ 정규식 : 데이터의 패턴을 보다 다양하게 찾거나 변경할 수 있도록 하는 함수
-- REGEXP_LIKE : like, 원하는 패턴을 검색
-- REGEXP_REPLACE : 패턴을 검색하고 변경(값 바꾸기)
-- REGEXP_INSTR : 패턴을 검색하고 위치 반환
-- REGEXP_SUBSTR : 패턴을 검색하고 부분 문자 추출
-- REGEXP_COUNT : 패턴을 검색하고 발견한 횟수
▶ 메타문자 : 검색을 하기위해 사용하는 문자
-- . 임의문자를 표현
예제
▶ 테이블 생성
CREATE TABLE reg_tab( text varchar2(20) );
▶ 데이터 입력
INSERT INTO reg_tab VALUES('TIGER');
INSERT INTO reg_tab VALUES('TIGGER');
INSERT INTO reg_tab VALUES('elephant');
INSERT INTO reg_tab VALUES('tiger');
INSERT INTO reg_tab VALUES('tiger2');
INSERT INTO reg_tab VALUES('tiger3');
INSERT INTO reg_tab VALUES('doggy');
INSERT INTO reg_tab VALUES('5doggy');
INSERT INTO reg_tab VALUES('DOG');
INSERT INTO reg_tab VALUES('DOG2');
INSERT INTO reg_tab VALUES('개');
INSERT INTO reg_tab VALUES('cat');
INSERT INTO reg_tab VALUES('catty');
INSERT INTO reg_tab VALUES('9catty');
INSERT INTO reg_tab VALUES('catwoman');
INSERT INTO reg_tab VALUES('고양이');
INSERT INTO reg_tab VALUES('BAT');
INSERT INTO reg_tab VALUES('BATMAN');
INSERT INTO reg_tab VALUES('BATGIRL');
INSERT INTO reg_tab VALUES('0BATGIRL');
INSERT INTO reg_tab VALUES('박쥐');
COMMIT;
----------------------------------------------------------------------------
▶ text 컬럼의 문자열에서 't'로 끝나는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, 't$');
▶ 첫번째 't'로 시작하여 5번째 'r'이 있는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, '^t...r');
▶ 숫자로 끝나는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, '[0-9]$');
▶ 숫자로 시작하는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, '^[0-9]');
▶ 숫자가 아닌 문자로 시작하는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, '^[^0-9]');
SELECT *
FROM REG_TAB
WHERE NOT REGEXP_LIKE(TEXT, '^[0-9]');
▶ 대문자로 시작하는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, '^[[:upper:]]');
SELECT *
FROM REG_TAB
WHERE REGEXP_LIKE(TEXT, '^[A-Z]');
▶ 소문자 외의 문자로 시작하는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, '^[^[:lower:]]');
SELECT *
FROM REG_TAB
WHERE NOT REGEXP_LIKE(TEXT, '^[a-z]');
-- WHERE REGEXP_LIKE(TEXT, '^[0-9A-Z가-힣]');
▶ 한글로 시작하는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, '^[가-힣]');
▶ 데이터 중 'gg'나 'GG'가 들어있는 데이터 검색
SELECT *
FROM reg_tab
WHERE REGEXP_LIKE(TEXT, 'gg|GG');
'Programming > 오라클[SQL]' 카테고리의 다른 글
오라클[sql] 커서 CURSOR (0) | 2022.09.24 |
---|---|
오라클[sql] 반복문 (0) | 2022.09.24 |
오라클[sql] 조건문 IF / CASE (0) | 2022.09.24 |
오라클[sql] PL/SQL (0) | 2022.09.24 |
오라클[sql] 시퀀스 / 인덱스 (0) | 2022.09.24 |
댓글