반응형
문자열을 반복하거나, 역순으로 바꾸거나, 공백을 생성하는 함수는 보기엔 단순하지만 실무에서는 로깅, 포맷팅, 테스트, 시각적 구분 등 다양한 상황에서 유용하게 쓰인다.
이번 글에서는 REPEAT, REVERSE, SPACE 함수의 사용법과 실전 예제를 한 번에 정리한다.

🔁 REPEAT(str, count): 문자열 반복
문법
REPEAT(문자열, 반복횟수)
주어진 문자열을 count번 반복해 이어붙인 결과를 반환한다.
예제
SELECT REPEAT('ab', 3); -- 결과: 'ababab'
SELECT REPEAT('-', 10); -- 결과: '----------'
실무 예제
-- 특정 길이 구분선 만들기
SELECT REPEAT('=', 30) AS separator;
-- 테스트 데이터 패턴 생성
SELECT REPEAT('X', id) FROM dummy_table;
반응형
🔄 REVERSE(str): 문자열 뒤집기
문법
REVERSE(문자열)
입력된 문자열을 뒤집어서 반환한다. 영문, 숫자, 특수문자 모두 포함된다.
예제
SELECT REVERSE('MySQL'); -- 결과: 'LQSyM'
SELECT REVERSE('abc123'); -- 결과: '321cba'
실무 예제
-- 뒤에서부터 특정 규칙 적용할 때 유용
SELECT REVERSE(LEFT(REVERSE(card_number), 4)) AS last4digit
FROM payment_info;
-- 문자열 패턴 체크용
SELECT REVERSE(email) FROM users;
⬜ SPACE(n): 공백 문자열 생성
문법
SPACE(길이)
지정한 길이만큼 공백 문자열을 생성한다. RPAD, CONCAT 등과 조합해 출력 포맷을 정리할 때 자주 쓰인다.
예제
SELECT CONCAT('Name', SPACE(5), 'Score');
-- 결과: 'Name Score' (Name과 Score 사이에 공백 5개)
실무 예제
-- 보고서 포맷 정렬
SELECT CONCAT(product_name, SPACE(10), price) AS line
FROM products;
-- 구분선 라인 조합
SELECT CONCAT('---', SPACE(20), '---') AS layout;
반응형
🧠 함수 비교 요약
| 함수명 | 역할 | 사용 예시 | 주요 용도 |
| REPEAT | 문자열 반복 | REPEAT('-', 5) → '-----' | 구분선, 패턴 생성 |
| REVERSE | 문자열 뒤집기 | REVERSE('abc') → 'cba' | 패턴 분석, 테스트 출력 |
| SPACE | 공백 문자열 생성 | SPACE(3) → ' ' | 포맷 정렬, 라인 간격 조절 |
⚠️ 유의사항
- REPEAT의 반복횟수가 0이면 빈 문자열 반환
- REVERSE(NULL) 또는 SPACE(NULL)은 NULL 반환
- REPEAT(str, n)에서 n이 매우 크면 성능 문제 발생 가능
- SPACE(n)은 단순 공백이므로 HTML/보고서 출력 시 주의
💡 실무 팁
- 동적 구분선이나 텍스트 정렬 작업에 조합해서 사용하면 효과적이다.
- REPEAT과 SPACE를 함께 쓰면, 시각적 정렬이나 고정 길이 포맷 출력도 쉽게 구현된다.
- REVERSE는 문자열 끝자리 패턴 확인에 유용하며, 간단한 암호화 느낌의 출력용으로도 활용 가능하다.
🔗 참고 공식 문서
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html
반응형
'DB' 카테고리의 다른 글
| [MySQL] 숫자 절댓값과 부호 함수: ABS, SIGN 활용법 (1) | 2025.07.21 |
|---|---|
| [MySQL] 숫자 반올림 함수: ROUND, CEIL, FLOOR 완전 정리 (0) | 2025.07.21 |
| [MySQL] 고급 문자열 함수: FIELD, ELT, FIND_IN_SET 정리 (1) | 2025.07.19 |
| [MySQL] 문자열 인코딩과 포맷 함수: CHAR, ASCII, HEX 등 총정리 (0) | 2025.07.19 |
| [MySQL] 대소문자 변환 함수: UPPER, LOWER 실습 가이드 (0) | 2025.07.19 |
| [MySQL] 문자열 공백 제거 함수: TRIM, LTRIM, RTRIM 비교 (0) | 2025.07.19 |
| [MySQL] 문자열 패딩 함수: LPAD, RPAD 예제 중심 정리 (0) | 2025.07.19 |
| [MySQL] 문자열 치환 함수: REPLACE 실무 활용법 (1) | 2025.07.19 |