1. 문자열 함수란?
데이터베이스에서 문자열 데이터는 다양한 형태로 저장되며, 이를 효율적으로 처리하기 위해 문자열 함수가 사용됩니다. 특히 오라클 DB에서 문자열 처리를 위해 제공되는 여러 함수 중, CONCAT, SUBSTR, INSTR은 가장 자주 사용됩니다.
이 글에서는 각 함수의 기본적인 사용법과 실무에서 유용하게 활용할 수 있는 예제를 중심으로 살펴보겠습니다.
2. CONCAT: 문자열 결합
CONCAT 함수는 두 개의 문자열을 결합하는 데 사용됩니다. CONCAT은 단순히 두 문자열을 합쳐 새로운 문자열을 생성합니다.
기본 문법
CONCAT(string1, string2)
- string1: 결합할 첫 번째 문자열.
- string2: 결합할 두 번째 문자열.
CONCAT 활용 예제
예제 1: 이름과 성 결합
SELECT CONCAT('홍', '길동') AS FullName
FROM DUAL;
- 설명: '홍'과 '길동'을 결합하여 FullName 컬럼에 저장합니다.
- 결과:
FullName
홍길동 |
예제 2: 컬럼 데이터 결합
SELECT CONCAT(FirstName, LastName) AS FullName
FROM employees;
- 설명: employees 테이블의 FirstName과 LastName 컬럼을 결합합니다.
예제 3: CONCAT과 공백 추가
공백을 포함한 결합은 || 연산자를 활용하거나 CONCAT 함수를 중첩해서 사용합니다.
SELECT CONCAT(CONCAT(FirstName, ' '), LastName) AS FullName
FROM employees;
- 설명: 이름과 성 사이에 공백을 삽입하여 읽기 쉽게 만듭니다.
3. SUBSTR: 문자열 추출
SUBSTR 함수는 문자열의 특정 위치에서 원하는 길이만큼 잘라내는 데 사용됩니다.
특히, 특정 패턴의 문자열을 추출하거나 데이터를 분리할 때 유용합니다.
기본 문법
SUBSTR(string, start_position, length)
- string: 추출 대상 문자열.
- start_position: 추출 시작 위치 (1부터 시작).
- length: 추출할 길이 (생략 시 끝까지 추출).
SUBSTR 활용 예제
예제 1: 앞부분 문자열 추출
SELECT SUBSTR('Hello World', 1, 5) AS ExtractedText
FROM DUAL;
- 설명: 'Hello World'의 첫 5글자를 추출합니다.
- 결과:
ExtractedText
Hello |
예제 2: 뒤에서부터 문자열 추출
SELECT SUBSTR('Hello World', -5) AS ExtractedText
FROM DUAL;
- 설명: 문자열 끝에서 5글자를 추출합니다.
- 결과:
ExtractedText
World |
예제 3: 전화번호 분리
SELECT SUBSTR('010-1234-5678', 5, 4) AS MiddleDigits
FROM DUAL;
- 설명: '010-1234-5678'에서 중간 번호(1234)를 추출합니다.
- 결과:
MiddleDigits
1234 |
4. INSTR: 문자열 위치 찾기
INSTR 함수는 특정 문자열이 다른 문자열 내에서 처음 등장하는 위치를 반환합니다.
데이터 정렬이나 필터링 조건에 활용하기 좋습니다.
기본 문법
INSTR(string, substring, start_position, occurrence)
- string: 검색 대상 문자열.
- substring: 찾고자 하는 문자열.
- start_position: 검색 시작 위치 (기본값: 1).
- occurrence: 등장 순서 (기본값: 1).
INSTR 활용 예제
예제 1: 특정 문자 위치 찾기
SELECT INSTR('Hello World', 'o') AS Position
FROM DUAL;
- 설명: 'o'의 첫 번째 위치를 반환합니다.
- 결과:
Position
5 |
예제 2: 두 번째 등장 위치 찾기
SELECT INSTR('Hello World', 'o', 1, 2) AS Position
FROM DUAL;
- 설명: 'o'의 두 번째 위치를 반환합니다.
- 결과:
Position
8 |
예제 3: 이메일 사용자명 추출
SELECT SUBSTR('user@example.com', 1, INSTR('user@example.com', '@') - 1) AS Username
FROM DUAL;
- 설명: '@'의 위치를 찾아 앞부분을 추출합니다.
- 결과:
Username
user |
5. 실무에서의 응용 사례
- 데이터 형식 변환
예를 들어, 이름과 부서를 결합하거나 날짜 형식을 커스텀하는 작업에서 CONCAT이 자주 사용됩니다. - 텍스트 분리 및 재구성
이메일 주소에서 도메인 추출, 전화번호에서 지역번호 분리 등 SUBSTR과 INSTR을 조합하여 사용합니다. - 조건부 데이터 처리
특정 패턴을 검색해 조건에 따라 데이터를 추출하거나 필터링하는 데 INSTR을 활용합니다.
6. 마치며
문자열 함수는 데이터베이스에서 텍스트 데이터를 다루는 데 필수적입니다. CONCAT, SUBSTR, INSTR은 그중에서도 기본적이고 실무 활용도가 높은 함수들입니다. 위의 예제들을 실습하면서 각각의 함수를 익히고, 실제 업무에서 데이터를 보다 효율적으로 처리해보세요. SQL의 강력한 문자열 처리 기능은 데이터를 자유롭게 가공하고 분석하는 데 큰 도움이 될 것입니다.
'Database' 카테고리의 다른 글
오라클 CASE와 DECODE로 조건 처리하기 (0) | 2024.12.03 |
---|---|
오라클 날짜 함수: SYSDATE, ADD_MONTHS, MONTHS_BETWEEN (0) | 2024.12.03 |
오라클 SQL 숫자 함수: ROUND, TRUNC, MOD (0) | 2024.12.03 |
오라클 내장 함수 소개 : 함수란 무엇인가? (1) | 2024.12.03 |
오라클 LIKE 연산자를 활용한 패턴 검색의 모든 것 (0) | 2024.12.03 |