상세 컨텐츠

본문 제목

#5. 문자 데이터 가공 - 형태 변화

내일배움캠프 학습/SQL

by 남민우_ 2024. 10. 18. 17:58

본문

1. 특정 문자를 다른 문자로 바꾸기 : Replace

select restaurant_name "원래 상점명",
       replace(restaurant_name, 'Blue', 'Pink') "바뀐 상점명"
from food_orders
where restaurant_name like '%Blue Ribbon%'

 

Replace

예제 코드에서의 활용은

"restaurant_name 컬럼에서 'blue' 를 모두 'pink' 로 바꿔라"

로 동작한다.

 

 

이전 이름에서 blue 가 모두 pink 로 바뀐 것을 확인할 수 있다.

 

사용 방법은 다음과 같다

replace (바꿀 컬럼, 현재 값, 바꿀 값)

 

예제 코드

SELECT addr "이전 주소",
	REPLACE(addr, '문곡리', '문가리') "바뀐 주소"
FROM food_orders fo
WHERE addr LIKE '%문곡리%'

실행 결과

 

바꿀 컬럼 Addr 에서 현재 값인 '문곡리' 가 바꿀 값인 '문가리' 로 바뀐 모습을 볼 수 있다.

 

 

2. 원하는 문자만 남기기 : Substring

select addr "원래 주소",
       substr(addr, 1, 2) "시도"
from food_orders
where addr like '%서울특별시%'

 

원래 주소에서 '시도' 로 서울 두글자만 조회한 모습이다.

 

Substring (Substr 로 표기할 수도 있다)

특정한 문자만 뽑아주는 키워드

로서 동작한다.

 

사용 방법은 다음과 같다

substring (조회 컬럼, 시작 위치, 조회 글자 수)

 

위의 예시 코드

Substr(addr, 1, 2) 의 경우

 

addr에서 조회,

1번째 글자 부터 조회 시작

2개의 글자 수만 조회

로 받아들일 수 있다.

 

추가 팁

시작 위치는 정할 수 있지만, 해당 위치부터 글자 끝까지 조회해야 하는데 글자 수가 일정하지 않을 때

마지막 인자인 '조회 글자 수' 를 어떻게 적어야할지 애매하다.

 

이 때는 그냥 안적으면 된다.

substr(조회할 컬럼, 시작 위치)

 

이렇게만 작성해도 문제없이 동작하며, 시작 위치부터 해당 데이터의 마지막 글자 수까지 빠짐없이 조회한다.

select addr "원래 주소",
       substr(addr, 3) "시도"
from food_orders
where addr like '%서울특별시%'

 

 

3. 여러 컬럼의 문자 합치기 : Concat

원하는 문자가 여러 컬럼이 있을 때, 하나로 합치고자 하는 경우 사용 가능하다

select restaurant_name "원래 이름",   
       addr "원래 주소",
       concat('[', substring(addr, 1, 2), '] ', restaurant_name) "바뀐 이름"
from food_orders
where addr like '%서울%'

 

Concat 함수 : 원하는 데이터를 붙여주는 함수

예제 코드에서의 concat 함수만 분리해서 보면 다음과 같다.

concat('[', substring(addr, 1, 2), '] ', restaurant_name)

substring 함수는 2번 항목에서 배운 글자 추출 키워드이다.

해당 결과로 '서울' 이 출력된 것을 알고 마저 키워드를 보면

 

특수 문자 ' [ ' 와 ' ] ' 로 substr 을 구분지어주고 새롭게 restaurant_name 컬럼명을 붙여주었다.

이 여러 데이터를 붙여 하나의 컬럼명으로 만드는 함수가 concat 함수이다.

 

사용 방법은 다음과 같다.

concat(붙이고 싶은 값1, 붙이고 싶은 값2, ... )

단순히 concat 함수의 인자로 붙이고 싶은 값들을 계속해서 넣어주면 된다.

 

붙일 수 있는 문자 종류로는

1. 컬럼

2. 한글

3. 영어

4. 숫자

5. 기타 특수 문자

가 있다.

한글이나 기타 특수 문자는 당연하게도 ' ' 작은 따옴표를 넣는 것을 잊지 말아야 한다.

예제 코드 추가

  CONCAT(restaurant_name, '-', cuisine_type) "음식타입 별 음식점",

새로 추가한 '음식 타입 별 음식점' 이 추가되고, 데이터에 원하는 대로 특수문자까지 정상적으로 포함된 모습이다.

관련글 더보기