MySQL에서는 다양한 내장함수들을 지원해준다. 

 

내장 함수들은 여러가지 상황에서 쓰일수 있기 때문에 알아두면 좋다.

 

1) IFNULL(수식1, 수식2) : 수식1이 NULL이 아니면 수식1이 반환되고, 수식1이 NULL이면 수식2가 반환된다.

select ifnull(null, 'null 입니다', ifnull(100, 'null 입니다'); 

첫 번째는 수식1이 null이기 때문에 null입니다가 출력되고 두번째는 null이 아니기 때문에 100이 출력된다. 

 

2) NULLIF(수식1, 수식2) : 수식1과 수식2가 같으면 NULL을 반환하고, 다르면 수식1을 반환한다.
select nullif(100,100), nullif(200,200); 

첫 번째는 수식1과 수식2가 같기 때문에 null이 출력되고, 두번째는 다르기 때문에 수식1의 값인 200이 출력된다. 

 

3) ASCII (아스키 코드), CHAR (숫자) : 

문자의 아스키 코드값을 돌려주거나 숫자의 아스키 코드값에 해당하는 문자를 돌려준다.

select ascii('A'), char(65); 
각각 A의 아스키코드값인 65와 65의 아스키코드값인 A를 반환한다. 
 
4) BIT_LENGTH(문자열), CHAR_LENGTH(문자열), LENGTH(문자열) : 
할당된 Bit 크기 또는 문자 크기를 반환한다. CHAR_LENGTH()는 문자의 개수를 반환하며
LENGTH()는 할당된 Byte수를 반환한다.
select bit_length('abc'), char_length('abc'), length('abc'); select bit_length('가나다'), char_length('가나다'), length('가나다'); 
MySQL은 기본적으로 UTF-8 코드를 사용하기 때문에 영문은 1바이트로 한글은 3바이트로 계산한다.

 

5) CONCAT(문자열1, 문자열2), CONCAT_WS(문자열1, 문자열2) : 

문자열을 이어준다. CONCAT_WS는 구분자와 함께 문자열을 이어준다.
select concat_ws('/', '2020', '01', '01'); 
구분자를 함께 반환하기 때문에 '2020/01/01'이 반환된다.

 

 

'SQL > mysql' 카테고리의 다른 글

조인 (JOIN @INNER JOIN)  (0) 2017.09.29
CAST(), CONVERT()  (0) 2017.09.29
변수 (Variable)  (0) 2017.09.19
대량 Sample 데이터 생성 (INSERT INTO ... SELECT)  (0) 2017.09.19
AUTO_INCREMENT  (0) 2017.09.19