반응형
SMALL
정규표현식(Regular Expression)은 원래 패턴과 문자열을 검색하기 위한 표현식이다.
쉽게말해 조건에 일치하는 것을 찾는데 쓰인다.
쿼리문에서는 Regular Expression >> 'REGEXP'로 사용된다.
정규표현식의 기본 예를 알아보자.
/* SELECT DISTINCT player
FROM tean
WHERE brand LIKE 'k%'
OR brand LIKE 'l%'
OR brand LIKE 'p%' */
-- 위는 'a 또는 b, c'로 시작하는 선수이름 --
-- 아래는 정규표현식 REGEXP 함수를 사용하였을 경우 --
SELECT DISTINCT player
FROM team
WHERE city REGEXP '^[klp].*'
규칙참고
% : 어떠한 문자도 허용
a% = 'a', 'abb', 'aca', bba ...
^[문자]: 다음으로 시작하는 문자
^[ab] = 'ab', 'bb', ccab ...
[ ] : []안의 문자 찾기
[c] = ab'c', a, bbb, 'c'f'c' ...
[ ].* : 뒤는 어떤 문자열도 가능
[ab].* = 'aab', 'bpp', cca ...
따라서,
LIKE 'a%'
LIKE 'b%'
LIKE 'c%'
> '^[abc].*'
로 대체해서 사용할 수 있다.
이외에도
아래와 같은 함수들로 사용된다.
- REGEXP_LIKE: 주어진 문자열이 정규표현식과 일치하는지 여부
- REGEXP_SUBSTR: 주어진 문자열에서 정규표현식과 일치하는 부분 문자열을 추출
- REGEXP_REPLACE: 주어진 문자열에서 정규표현식과 일치하는 부분을 다른 문자열로 대체
- REGEXP_INSTR: 주어진 문자열에서 정규표현식과 일치하는 부분의 위치를 반환
레퍼런스
더 복잡하고 다양한 정규표현식이 많이 있다.
아래 사이트를 통해서 그림과 같이 표현식을 참고할 수 있다.
반응형
LIST
'DB > SQL 기초' 카테고리의 다른 글
피봇(PIVOT) 연산자 (0) | 2023.06.29 |
---|---|
UPDATE + INSERT = UPSERT 구문 (0) | 2023.06.29 |
SQLD 말 문제 - WINDOW 함수 구조 이해하기 (0) | 2022.09.18 |
SQLD 말 문제 - 메인쿼리와 서브쿼리에서 간과하기 쉬운 주의사항 (0) | 2022.09.18 |
자기가 자기 엔터티를 참조하는 자기참조 관계(Self Referencing Relationship), 순환관계(Recursive Relationship) (0) | 2022.09.18 |