문자열 함수 완벽 가이드: SUBSTR, LENGTH, REPLACE, CONCAT 사용법 및 주의사항
문자열 함수에 대한 이 글에서는 SUBSTR, LENGTH, REPLACE, CONCAT의 사용법을 설명합니다. 문자열 검색과 변환 방법을 다루며, 문자열 처리 시 주의해야 할 사항도 포함됩니다. 초급자들이 쉽게 이해하고 실습할 수 있도록 구성되었습니다.
SQLD 문제 은행 앱으로 효율적으로 공부하세요!
✅ 10회차 모의고사 제공
✅ 다양한 학습 모드 (빠른문제, 집중학습, 실전모드)
✅ 상세한 통계 및 분석
✅ 완전 무료로 시작 가능
QR 코드를 스캔하여 앱을 다운로드하세요.

QR 코드를 스캔하면 자동으로 해당 플랫폼 스토어로 이동합니다.

SUBSTR, LENGTH, REPLACE, CONCAT 사용법
1. SUBSTR 함수
SUBSTR 함수는 문자열의 특정 위치에서 시작하여 지정된 길이만큼의 부분 문자열을 반환합니다. 이 함수는 문자열을 잘라내는 데 유용합니다.
구문:
SUBSTR(string, start_position, length)
string: 부분 문자열을 추출할 원본 문자열start_position: 추출을 시작할 위치 (1부터 시작)length: 추출할 문자열의 길이 (옵션)
예제:
SELECT SUBSTR('Hello, World!', 1, 5) AS extracted_string FROM dual;
위 쿼리는 'Hello'라는 문자열을 반환합니다.
2. LENGTH 함수
LENGTH 함수는 주어진 문자열의 길이를 반환합니다. 이 함수는 문자열의 길이를 확인할 때 유용합니다.
구문:
LENGTH(string)
string: 길이를 측정할 문자열
예제:
SELECT LENGTH('Hello, World!') AS string_length FROM dual;
위 쿼리는 13을 반환합니다.
3. REPLACE 함수
REPLACE 함수는 문자열 내에서 특정 문자열을 다른 문자열로 대체합니다. 이 함수는 문자열 변환에 유용합니다.
구문:
REPLACE(string, search_string, replace_string)
string: 변환할 원본 문자열search_string: 대체할 문자열replace_string: 대체할 문자열
예제:
SELECT REPLACE('Hello, World!', 'World', 'SQL') AS replaced_string FROM dual;
위 쿼리는 'Hello, SQL!'이라는 문자열을 반환합니다.
4. CONCAT 함수
CONCAT 함수는 두 개의 문자열을 연결하여 하나의 문자열로 만듭니다. 이 함수는 문자열 결합에 유용합니다.
구문:
CONCAT(string1, string2)
string1: 첫 번째 문자열string2: 두 번째 문자열
예제:
SELECT CONCAT('Hello', ', World!') AS concatenated_string FROM dual;
위 쿼리는 'Hello, World!'라는 문자열을 반환합니다.
이와 같은 문자열 함수들을 활용하면 SQL에서 문자열을 효과적으로 처리할 수 있습니다.
문자열 검색과 변환
문자열 검색과 변환은 SQL에서 자주 사용되는 작업으로, 데이터의 특정 부분을 찾아내거나 수정하는 데 유용합니다. 이 과정에서 여러 문자열 함수를 활용할 수 있습니다.
1. INSTR 함수
INSTR 함수는 특정 문자열이 다른 문자열 내에서 처음으로 나타나는 위치를 반환합니다. 이 함수는 문자열 내에서 특정 단어를 찾는 데 유용합니다.
구문:
INSTR(string, search_string, start_position, match_occurance)
string: 검색할 원본 문자열search_string: 찾고자 하는 문자열start_position: 검색을 시작할 위치 (옵션)match_occurance: 몇 번째 일치를 찾을지 지정 (옵션)
예제:
SELECT INSTR('Hello, World!', 'o') AS position FROM dual;
위 쿼리는 'Hello, World!'에서 'o'가 처음 나타나는 위치인 5를 반환합니다.
2. TRIM 함수
TRIM 함수는 문자열의 앞뒤에서 공백을 제거합니다. 이 함수는 사용자 입력값의 불필요한 공백을 처리하는 데 유용합니다.
구문:
TRIM([LEADING | TRAILING | BOTH] trim_string FROM string)
trim_string: 제거할 문자열 (기본값은 공백)string: 공백을 제거할 원본 문자열
예제:
SELECT TRIM(' Hello, World! ') AS trimmed_string FROM dual;
위 쿼리는 'Hello, World!'라는 문자열을 반환합니다.
3. UPPER와 LOWER 함수
UPPER 함수는 문자열을 모두 대문자로 변환하고, LOWER 함수는 문자열을 모두 소문자로 변환합니다. 이 두 함수는 문자열의 대소문자를 통일하는 데 유용합니다.
구문:
UPPER(string)
LOWER(string)
예제:
SELECT UPPER('Hello, World!') AS upper_string, LOWER('Hello, World!') AS lower_string FROM dual;
위 쿼리는 각각 'HELLO, WORLD!'와 'hello, world!'를 반환합니다.
4. REPLACE 함수
앞서 설명한 REPLACE 함수는 문자열 내의 특정 문자열을 다른 문자열로 대체합니다. 이 함수는 문자열 변환에 유용합니다.
예제:
SELECT REPLACE('Hello, World!', 'Hello', 'Hi') AS replaced_string FROM dual;
위 쿼리는 'Hi, World!'라는 문자열을 반환합니다.
이러한 문자열 검색과 변환 기능을 활용하면 데이터베이스에서 문자열을 효율적으로 처리하고 원하는 형식으로 변환할 수 있습니다.
문자열 처리 시 주의사항
SQL에서 문자열을 처리할 때는 몇 가지 주의해야 할 사항이 있습니다. 이러한 주의사항을 이해하고 잘 활용하면 오류를 줄이고 효율적인 쿼리를 작성할 수 있습니다.
1. 대소문자 구분
SQL에서는 문자열 비교 시 대소문자를 구분합니다. 따라서 'abc'와 'ABC'는 서로 다른 문자열로 인식됩니다. 이를 고려하여 문자열을 비교하거나 검색할 때는 대소문자 통일을 위해 UPPER 또는 LOWER 함수를 사용하는 것이 좋습니다.
예제:
SELECT * FROM employees WHERE LOWER(first_name) = 'john';
위 쿼리는 first_name을 소문자로 변환하여 'john'과 비교합니다.
2. 공백 처리
문자열의 앞뒤에 있는 공백은 종종 문제를 일으킬 수 있습니다. 사용자가 입력한 데이터에 불필요한 공백이 포함될 수 있으므로, TRIM 함수를 사용하여 공백을 제거하는 것이 중요합니다.
예제:
SELECT TRIM(first_name) AS cleaned_name FROM employees;
위 쿼리는 first_name의 앞뒤 공백을 제거하여 반환합니다.
3. NULL 값 처리
문자열이 NULL인 경우, 문자열 함수는 NULL을 반환합니다. 따라서 NULL 값을 처리할 때는 NVL 또는 COALESCE 함수를 사용하여 NULL을 다른 값으로 대체할 수 있습니다.
예제:
SELECT NVL(first_name, '이름 없음') AS name FROM employees;
위 쿼리는 first_name이 NULL인 경우 '이름 없음'으로 대체합니다.
4. 문자열 길이
LENGTH 함수를 사용하여 문자열의 길이를 확인할 수 있습니다. 문자열이 예상보다 짧거나 길면 오류가 발생할 수 있으므로, 길이를 확인하는 것이 중요합니다.
예제:
SELECT first_name, LENGTH(first_name) AS name_length FROM employees;
위 쿼리는 각 직원의 이름과 그 길이를 반환합니다.
5. 인코딩 문제
문자열 데이터의 인코딩 방식에 따라 문자가 올바르게 표시되지 않을 수 있습니다. 특히 다국어 지원이 필요한 경우, 데이터베이스의 문자셋을 확인하고 적절한 인코딩을 사용해야 합니다.
이러한 주의사항을 염두에 두고 문자열을 처리하면 SQL 쿼리의 정확성과 효율성을 높일 수 있습니다.






