본문 바로가기

데이터베이스/MySQL

[MySQL] 기본 내장 함수 (문자열)

1. concat(문자열1, 문자열2, 문자열 N . . .)

MySQL에서 문자열을 합쳐주는 기능을 수행하는 내장함수이다.

하지만 조회하거나 합쳐지는 문자열의 값이 NULL이면 concat() 함수의 결과가 NULL로 반환된다.
select concat(first_name, ' ', last_name) as full_name from customer;

 

2. replace( 컬럼, 기존 문자열, 변환할 문자열 )

특정 문자열을 다른 문자열로 변환, 컬럼에 있는 해당되는 문자를 모두 바꾼다.
select replace(first_name, 'A', '?') as first_name from customer;

위의 코드는 first_name 컬럼에 'A' 문자를 '?'로 바꾼 결과이다.

 

3. pad( 컬럼명, 대상 값을 포함한 문자열 크기, 삽입할 문자 )

lpad()와 rpad() 로 나뉜다.

- lpad() : 왼쪽 부분에 삽입할 문자를 채운다. 
- rpad() : 오른쪽 부분에 삽입할 문자를 채운다.
-- pad()
select lpad(first_name, 20, '.') as lpad_name1,
		lpad(first_name, 20, '@') as lpad_name2,
		lpad(first_name, 20, ' ') as lpad_name3,
        rpad(first_name, 20, '.') as rpad_name1,
		rpad(first_name, 20, '@') as rpad_name2,
		rpad(first_name, 20, ' ') as rpad_name3
        from customer;

 

 

4. left, right, mid

해당 문자열에서 일부분의 문자열을 가져오는 것이다.

- LEFT : 문자에 왼쪽을 기준으로 일정 갯수를 가져오는 함수. -> left( 컬럼명, 가져올 문자 개수 )
- MID : 문자에 지정한 시작 위치를 기준으로 일정 갯수를 가져오는 함수. -> substring( 컬럼명, 시작 위치, 가져올 문자 개수 )
- RIGHT : 문자에 오른쪽을 기준으로 일정 갯수를 가져오는 함수.  -> right( 컬럼명, 가져올 문자 개수 )
-- left, right, mid
select left(first_name, 3) as left_name,
		right(first_name, 3) as right_name,
        substring(first_name, 2, 3) as mid_name
        from customer;

위 코드에서,

left()는 first_name을 왼쪽 기준으로 3개의 문자만 가져온 것이다. 

right()도 left()와 로직이 같다.

substring()은 first_name을 2번째 인덱스 부터 3개의 문자만 가져온 것이다.

 

 

5. length(), char_length()

문자열의 길이를 반환해주는 내장 함수이다.

- length() : 한글은 3byte, 영어는 1byte의 메모리 크기를 차지하고 있다.
- char_length() : 한글, 영어 둘다 1byte의 메모리 크기를 차지하고 있다.
select length('가나다라마바사 이것은 아주 긴 문자열이다.') as '한글', 
		length('qwertyuiopasdfghjkzxcvbnm') as '영어';

 

select char_length('가나다라마바사 이것은 아주 긴 문자열이다.') as '한글',
		char_length('qwertyuiopasdfghjkzxcvbnm') as '영어';