DB

[MySQL] 반복, 역순, 공백 함수: REPEAT, REVERSE, SPACE 정리

인생아 2025. 7. 19. 17:56
반응형

문자열을 반복하거나, 역순으로 바꾸거나, 공백을 생성하는 함수는 보기엔 단순하지만 실무에서는 로깅, 포맷팅, 테스트, 시각적 구분 등 다양한 상황에서 유용하게 쓰인다.
이번 글에서는 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

 

반응형