데이터 분석이나 문자열 처리를 할 때 **정규식(Regular Expressions)**은 아주 유용하게 쓸임. SQL에서도 정규식을 지원하는 여러 함수들이 있음. 특히 문자열 데이터의 패턴 매치킹, 변환, 추출에 자주 활용되기 때문에 잘 익해두면 업무에서 크는 도움이 될 수 있음. 이는 포스팅에서는 SQL에서 정규식을 활용하는 대표적인 함수 3가지를 알아보겠음.
1. REGEXP_LIKE
✨✨✨ REGEXP_LIKE는 특정 문자열이 정규식 패턴과 일치하는지를 확인하는 함수임. LIKE
연산자의 확장 버전으로 생각하면 된음.
문법
REGEXP_LIKE(column_name, 'pattern')
column_name
: 검사할 여pattern
: 정규식 패턴
사용 예시
이름에 ‘김’이 포함된 데이터를 찾는 코드:
SELECT *
FROM users
WHERE REGEXP_LIKE(name, '김');
- 여기서 ‘김’이라는 패턴이 포함된 모든 행이 반환된음.
✨✨✨
2. REGEXP_REPLACE
✨✨✨ REGEXP_REPLACE는 정규식 패턴과 일치하는 문자열을 다른 문자열로 변환해주는 함수임. 문자열의 특정 부분을 바꾸어야 할 때 유용하게 쓸임.
문법
REGEXP_REPLACE(column_name, 'pattern', 'replacement')
column_name
: 처리할 여pattern
: 바꾸는 문자열의 정규식 패턴replacement
: 대체할 문자열
사용 예시
전화번호에서 하이픈(-
)을 제거하는 코드:
SELECT REGEXP_REPLACE(phone_number, '-', '') AS clean_number
FROM users;
- 전화번호에 포함된 ‘-‘ 기호가 모든 제거된 결과가 반환된음.
또는 주민등목번호를 마스킹 처리하는 예시:
SELECT REGEXP_REPLACE(ssn, '\\d{6}-\\d{7}', '******-*******') AS masked_ssn
FROM users;
✨✨✨
3. REGEXP_SUBSTR
✨✨✨ REGEXP_SUBSTR는 정규식 패턴에 맞는 첫 번째 문자열을 추출하는 함수임. 원하는 패턴의 데이터를 가지오러 가는 때 유용함.
문법
REGEXP_SUBSTR(column_name, 'pattern')
column_name
: 검사할 여pattern
: 추출할 문자열의 정규식 패턴
사용 예시
문장 중 이메일 주소를 추출하는 코드:
SELECT REGEXP_SUBSTR(text, '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}') AS email
FROM messages;
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}
: 이메일 주소 패턴을 나타내는 정규식임.
답글 남기기