SQLD 시험 대비

SQLD 정규표현식

_김영인 2026. 3. 4. 18:02

1. 정규표현식이란?

정규표현식 (Regular Expression)은 문자열을 특정 패턴으로 검색하거나 처리하기 위한 표현식이다.

문자열에서 특정 규칙을 가진 데이터를 찾거나, 변환하거나, 검증할 때 사용한다.

 

대표적인 활용 사례:

  • 특정 형식 데이터 검색
  • 문자열 치환
  • 데이터 형식 검증
  • 부분 문자열 추출

예를 들어 다음과 같은 작업을 할 수 있다:

  • 전화번호 형식 검사
  • 이메일 형식 검사
  • 특정 문자로 시작하는 데이터 검색

정규표현식은 Java, Python 같은 프로그래밍 언어뿐 아니라 SQL에서도 문자열 처리 기능으로 지원된다.


 

2. 정규표현식의 메타 문자

 

정규표현식은 메타 문자 (meta character)를 이용하여 패턴을 정의한다.

메타 문자는 문자 자체가 아니라 특별한 의미를 가지는 문자이다.

메타 문자 의미 
\ 메타 문자를 문자 그대로 사용 \W, \w
^ 문자열 시작 ^The
$ 문자열 끝 ing$
. 임의의 한 문자 a.b
? 0개 또는 1개 no?
* 0개 이상 no*
+ 1개 이상 no+

 

예시

 

문자열 시작

^The

 

The로 시작하는 문자열

The book
The SQL

 

 

문자열 끝

ing$

 

ing로 끝나는 문자열

running
reading
coding

 

 

임의의 문자

a.b

 

가능한 문자열

acb
aab
axb

 

 

문자 반복

패턴 의미
no? o가 0~1개 n, no
no* o가 0개 이상 n, no, noo
no+ o가 1개 이상 no, noo

 

3. SQL에서 사용하는 정규표현식 함수

 

SQL에서는 정규표현식을 활용하기 위해 여러 함수를 제공한다.

함수 설명
REGEXP_LIKE 정규표현식으로 LIKE 검색
REGEXP_REPLACE 정규표현식으로 문자열 치환
REGEXP_INSTR 정규표현식 위치 반환
REGEXP_SUBSTR 정규표현식 부분 문자열 반환
REGEXP_COUNT 정규표현식 개수 반환

 

4. 전화번호 정규표현식 예제


다음 MEMBER 테이블이 있다고 가정한다.

Name PHONE
David 010-8776-4672
Michael 010-4455-2318
Jane 010-8876-1609

 

숫자만 추출하기

 

전화번호에서 -를 제거하는 예제

SELECT
    REGEXP_REPLACE(PHONE, '[^0-9]', '')
FROM MEMBER;

 

결과

01087764672
01044552318
01088761609

 

설명: [^0-9] → 숫자가 아닌 문자 제거

 

전화번호 형식 검사

REGEXP_LIKE(PHONE, '010-[0-9]{4}-[0-9]{4}')

 

의미: 010-0000-0000 형식인지 검사


 

5. REGEXP_REPLACE 예제

 

전화번호에서 숫자를 *로 바꾸기

SELECT REGEXP_REPLACE(PHONE, '[0-9]', '*')
FROM MEMBER;

 

결과

***-****-****

 

6. 정규표현식 사용 시 주의사항

 

Oracle, SQL Server 등 DBMS마다 정규표현식 지원이 조금씩 다르다.

 

Oracle

REGEXP_LIKE
REGEXP_REPLACE
REGEXP_SUBSTR

 

SQL Server

PATINDEX
LIKE

 

DBMS마다 함수 차이를 알고 있어야 한다.


 

7. 정규표현식 실무 활용 예

 

이메일 검증

REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$')

 

숫자만 포함된 데이터

REGEXP_LIKE(value, '^[0-9]+$')

 

특정 문자 제거

REGEXP_REPLACE(name, '[^A-Za-z]', '')

 

정규표현식은 문자열 데이터를 처리할 때 매우 강력한 도구이다.

 

핵심 정리:

  • 문자열 패턴을 정의하는 표현식
  • 메타 문자를 사용하여 규칙 정의
  • SQL에서는 REGEXP 계열 함수로 사용
  • 데이터 검증, 문자열 치환, 패턴 검색에 활용

특히 전화번호, 이메일, 로그 데이터 처리 같은 상황에서 많이 사용된다.

'SQLD 시험 대비' 카테고리의 다른 글

SQLD DML / TCL  (0) 2026.03.05
SQLD 함정 문제 TOP 20  (0) 2026.03.05
SQLD PIVOT / UNPIVOT  (0) 2026.03.03
SQLD 계층형 질의와 셀프 조인  (0) 2026.03.02
SQLD Top N 쿼리  (0) 2026.03.01