문자열 함수 정리 – MySQL에서 자주 사용하는 텍스트 처리 함수
MySQL 문자열 함수는 데이터베이스에서 문자열을 가공하거나 분석할 때 매우 유용합니다. 이 문서에서는 자주 사용하는 문자열 함수들을 예제와 함께 정리해드립니다.
🔠 1. 문자열 길이 확인 – LENGTH()
SELECT LENGTH('12345678');
-- 결과: 8
- 바이트 수 기준 반환 (ASCII: 1바이트, UTF-8 한글: 3바이트)
🔗 2. 문자열 결합 – CONCAT()
SELECT CONCAT('Ora', 'cle Cor', 'poration'); -- 'Oracle Corporation'
SELECT CONCAT('Oracle', NULL, 'Corp'); -- NULL
NULL포함 시 결과는 NULL- 여러 문자열을 순서대로 연결
🔍 3. 문자열 내 위치 찾기 – LOCATE()
SELECT LOCATE('abc', 'ababcDEFabc'); -- 3
SELECT LOCATE('abc', 'ababcDEFabc', 4); -- 9
- 문자열 내 특정 부분 문자열의 위치 반환
- 위치는 1부터 시작
✂️ 4. 문자열 추출 – LEFT(), RIGHT()
SELECT LEFT('MySQL PHP HTML Java', 5); -- 'MySQL'
SELECT RIGHT('MySQL PHP HTML Java', 4); -- 'Java'
LEFT(): 왼쪽에서부터 n개 문자 추출RIGHT(): 오른쪽에서부터 n개 문자 추출
🔡 5. 대소문자 변환 – LOWER(), UPPER()
SELECT LOWER('MySQL PHP'); -- 'mysql php'
SELECT UPPER('MySQL PHP'); -- 'MYSQL PHP'
- 모든 문자를 대/소문자로 변환
🔁 6. 문자열 일부 대체 – REPLACE()
SELECT REPLACE('MySQL', 'My', 'MS ');
-- 결과: 'MS SQL'
- 첫 번째 문자열에서 특정 문자열을 찾아 새 문자열로 변경
🧹 7. 문자열 공백/문자 제거 – TRIM()
SELECT TRIM(' !!!MySQL PHP HTML Java!!! ');
-- 결과: '!!!MySQL PHP HTML Java!!!'
SELECT TRIM(LEADING '!' FROM '!!!MySQL PHP HTML Java!!!');
-- 결과: 'MySQL PHP HTML Java!!!'
TRIM(): 양 끝 공백 제거- 옵션:
LEADING,TRAILING,BOTH
💰 8. 숫자 형식화 – FORMAT()
SELECT FORMAT(123456789.123456, 3);
-- 결과: '123,456,789.123'
- 소수점 자리수와 천 단위 쉼표 포함
- 숫자를 문자열로 반환
📋 요약 테이블
| 함수명 | 설명 | 예제 결과 |
|---|---|---|
LENGTH() |
문자열 길이 반환 | 'abc' → 3 |
CONCAT() |
문자열 결합 | 'a', 'b' → 'ab' |
LOCATE() |
부분 문자열 위치 반환 | 'ab' in 'abc' → 1 |
LEFT() |
왼쪽에서 n자 추출 | LEFT('abc', 2) → 'ab' |
RIGHT() |
오른쪽에서 n자 추출 | RIGHT('abc', 2) → 'bc' |
LOWER() |
소문자로 변환 | 'ABC' → 'abc' |
UPPER() |
대문자로 변환 | 'abc' → 'ABC' |
REPLACE() |
문자열 일부 치환 | 'MySQL' → 'MS SQL' |
TRIM() |
공백 또는 특정 문자 제거 | ' abc ' → 'abc' |
FORMAT() |
숫자 포맷 문자열 반환 | 12345.6 → '12,345.60' |
질문 정리
❓ CONCAT()과 CONCAT_WS() 차이는?
CONCAT_WS(separator, ...)는 구분자를 포함해 문자열을 연결합니다.
❓ 한글 길이를 정확히 구하려면?
CHAR_LENGTH()또는CHARACTER_LENGTH()를 사용하세요.
SELECT LENGTH('가나'), CHAR_LENGTH('가나');
-- 결과: LENGTH: 6 (UTF-8), CHAR_LENGTH: 2 (문자 수)
댓글남기기