SQL 문자 데이터 가공: REPLACE, SUBSTRING, CONCAT

습토리·2025년 2월 15일

SQL

목록 보기
10/12

1. Query 결과를 바로 사용할 수 없는 경우

데이터를 조회하다 보면 Query 결과를 그대로 이용할 수 없는 경우가 있습니다. 다음과 같은 상황이 있을 수 있습니다:

  • 잘못된 데이터 수정: 과거에 사용하던 값이 잘못되어 대량으로 수정이 필요할 때.
  • 특정 문자만 필요: 전체 주소 중 '서울' 같은 시도 정보만 필요할 때.
  • 문자 포맷 변경: '사업장 [지역]' 형태로 포맷을 변경해야 할 때.

이런 상황에서 SQL로 문자 데이터를 쉽게 가공할 수 있습니다.


2. 특정 문자를 다른 문자로 바꾸기 (REPLACE)

SQL은 특정 문자를 다른 문자로 바꾸는 기능을 제공합니다.

🛠️ 함수명: REPLACE

  • 사용법:
    REPLACE(컬럼명, '현재 값', '바꿀 값')

🔍 실습 예제

[실습1] 식당 명 'Blue Ribbon' → 'Pink Ribbon' 변경

SELECT restaurant_name AS "원래 상점명",
       REPLACE(restaurant_name, 'Blue', 'Pink') AS "바뀐 상점명"
FROM food_orders
WHERE restaurant_name LIKE '%Blue Ribbon%';

[실습2] 주소 '문곡리' → '문가리' 변경

SELECT addr AS "원래 주소",
       REPLACE(addr, '문곡리', '문가리') AS "바뀐 주소"
FROM food_orders
WHERE addr LIKE '%문곡리%';

이와 같은 방식으로 대량의 데이터도 쉽게 수정할 수 있습니다.


3. 원하는 문자만 남기기 (SUBSTRING)

SQL에서는 특정 문자만 선택해서 조회할 수 있습니다.

🛠️ 함수명: SUBSTRING(DBMS에 따라 SUBSTR)

  • 사용법:
    SUBSTR(컬럼명, 시작 위치, 가져올 글자 수)

🔍 실습 예제

[실습] 서울 주소에서 '시도'만 추출

SELECT addr AS "원래 주소",
       SUBSTR(addr, 1, 2) AS "시도"
FROM food_orders
WHERE addr LIKE '%서울특별시%';

위 Query는 '서울특별시 강남구...'와 같은 주소에서 '서울'만 출력해줍니다.

TIP: 시작 위치는 1부터 시작합니다.


4. 여러 컬럼의 문자를 합치기 (CONCAT)

여러 개의 문자열을 하나로 결합할 수 있습니다.

🛠️ 함수명: CONCAT

  • 사용법:
    CONCAT(문자1, 문자2, 문자3, ...)

결합 가능한 문자 종류:

  • 컬럼 값
  • 한글, 영어, 숫자
  • 특수문자

🔍 실습 예제

[실습] 서울 소재 음식점명에 '[서울]' 접두사 추가

SELECT restaurant_name AS "원래 이름",
       addr AS "원래 주소",
       CONCAT('[', SUBSTR(addr, 1, 2), '] ', restaurant_name) AS "바뀐 이름"
FROM food_orders
WHERE addr LIKE '%서울%';

위 코드 실행 시, '한식당'이 '서울특별시'에 위치해 있다면 [서울] 한식당으로 출력됩니다.


✅ 정리

SQL은 문자 데이터를 가공할 수 있는 다양한 기능을 제공합니다.

  • REPLACE: 특정 문자열을 다른 값으로 변경
  • SUBSTRING: 문자열의 특정 부분만 선택
  • CONCAT: 여러 문자열을 하나로 결합

profile
재미난 삶을 살다

0개의 댓글