문자열 연산

Hyun-jin Won·2021년 10월 8일
0

MySQL로 SQL 시작하기

목록 보기
11/24

문자열을 위한 연산자가 따로 있다.

데이터 중에는 문자열 타입이 존재하는데, 이러한 데이터를 위한 연산자가 따로 존재한다.
아래는 몇가지 예시를 서술한다.

결합

CONCAT(A,B ...)

MySQL에서는 CONCAT이라는 함수로 문자열 결합을 지원한다.
파라매터의 값은 최소 2개 이상이여야 하며, 그 이상 들어가도 상관없다. 물론 MySQL에서도 || 방식이 가능하긴 하다. 하지만 해당 방식을 사용할려면 SQL모드를 변경해야 한다.

Can MySQL concatenate strings with || - stack overflow

자르기

SUBSTRING(str,pos), 
SUBSTRING(str FROM pos), 
SUBSTRING(str,pos,len), 
SUBSTRING(str FROM pos FOR len)

SUBSTRING이 이를 지원한다.

여러가지 파라매터를 지원하는데, 기본적으로 str이 타겟이 되며,
pos가 자를 위치이며 양수를 입력하면 왼쪽, 음수로 시작 시 오른쪽을 기준으로 본다. 단 일반적으로 우리가 아는 배열과는 다르게 0, length - 1 이 아닌 1, length이 맨 앞 또는 뒤를 지칭한다.
len은 해당 위치에서 얼마만큼의 단어 개수를 자를지를 설정한다.

앞 뒤의 여분 제거

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), 
TRIM([remstr FROM] str)

문자열의 앞 뒤의 여분를 제거할 때 TRIM이 이를 지원한다.

str이 타겟이 되는 문자열이며,
BOTH, LEADING, TRAILING 옵션을 통해 각각 전부, 앞, 뒤만 제거할 수 있다.
remstr를 지정하면 해당 문자열만 제거하며, 해당 값을 지정하지 않으면 space를 제거한다.

문자열의 길이

CHAR_LENGTH(str)
CHARACTER_LENGTH(str)

CHAR_LENGTH 또는 CHARACTER_LENGTH이 이를 지원하며, 둘 다 같은 기능을 하는 함수이다.

str이 타겟이 되는 문자열이다.
LENGTH(str) 라는 함수도 존재하나 문자의 개수를 센다는 점에서 차이점이 존재한다. 예시로 만약 2-byte character를 가지는 문자열 데이터가 있고, LENGTH 함수 호출 시 10이라는 값을 반환한다면, CHARACTER_LENGTH 함수는 5를 반환하게 된다.

참고

String Functions and Operators - MySQL 8.0 Documents

profile
삽질을 주체하지 못하는 잉간

0개의 댓글