MariaDB

MariaDB 내장 함수 (제어 흐름 함수, 문자열 함수)

Yonggyu 2023. 10. 11. 14:24
반응형

 


제어 흐름 함수

IF(수식 , 참 , 거짓)
수식이 참 또는 거짓인지 결과에 따라서 2중 분기한다.

SELECT IF (100>200, '참이다', '거짓이다');

 

거짓이 출력된다.

 


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

SELECT IFNULL(NULL,'널이군요'), IFNULL(100,'널이군요')

 

첫번째는 '널이군요'가 출력되고 두번째는 100이 출력된다.

 

 

NULLIF(수식1, 수식2)
수식1과 수식2가 같으면 NULL을 반환하고, 다르면 수식1을 반환한다.

SELECT NULLIF(100,100), NULLIF(200,100);

 

첫번째는 NULL, 두번쨰는 200 반환

 

 

CASE ~ WHEN ~ ELSE ~ END

CASE는 내장함수는 아니고 연산자이다. 다중분기에서 사용될 수 있다.

SELECT CASE 10
WHEN 1 THEN '일'
WHEN 5 THEN '오'
WHEN 10 THEN '십'
ELSE '모름'

END;

CASE 뒤의 값이 10이므로 WHEN 10 이 수행되어 '십'이 출력된다.

 

 

문자열 함수

문자열을 조작한다. 활용도가 높다.

 

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

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

SELECT ASCII('A'), CHAR(65);

 

 

 

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('가나다');

위에부터 각각 24, 3, 3 그리고 한글은  72, 3, 9 를 반환한다.

영문은 3Byte를 한글은 3*3 인 9Byte를 할당한다.

 

 

CONCAT(문자열1,문자열2, ...)

CONCAT은 문자열을 이어준다.

SELECT CONCAT_WS('/','2022','01','01');

CONCAT_WS() 는 구분자 '/' 를 사용해 문자를 이어줬다.

결과는 2022/01/01 이 반환된다.

 

 

FOMAT(숫지, 소수점 자릿수)

SELECT FORMAT(12.123456789,4);

숫자를 소수점 아래 자리수까지 반올림하여 표현한다. 

'12.1235' 를 반환한다.

 

 

LEFT(문자열, 길이) RIGHT(문자열, 길이)

왼쪽 또는 오른쪽에서 길이만큼 문자열 반환

SELECT LEFT('ABCDEFG',3), RIGHT('ABCDEFG',2);

'ABC' , 'FG' 반환

 

 

 

UPPER(문자열), LOWER(문자열)

소문자 -> 대문자, 대문자 -> 소문자 반환

SELECT UPPER('abc'), LOWER('ABC');

'ABC' , 'abc' 반환

 

 

TRIM(문자열), TRIM(방향 자를_문자열 FROM 문자열)

TRIM()은 앞뒤 공백을 모두 없앤다.

TRIM(방향 자를_문자열 FROM 문자열)에서 방향은 LEADING(앞), BOTH(양쪽), TRAILING(뒤)가 나올 수 있다.

SELECT TRIM('    안녕    '), TRIM(BOTH 'ㅋ' FROM 'ㅋㅋ안녕ㅋㅋ');

둘다 '안녕' 이 반환된다.

 

 

REPEAT(문자열, 횟수)

횟수만큼 문자열 반복 반환

SELECT REPEAT('안녕',3);

'안녕안녕안녕'

 

SUBSTRING(문자열, 시작위치, 길이) 또는 SUBSTRING(문자열 FROM 길이 FOR 길이)

시작 위치부터 길이만큼 문자 반환한다. 길이는 생략하면 끝까지이다.

SELECT SUBSTRING('대한민국만세',3,2);
-- SELECT SUBSTRING('대한민국만세' FROM 3 FOR 2);

3번쨰인 '민'부터 2개여서 '민국' 을 반환한다.

 

 

REVERSE(문자열)

문자열순서를 거꾸로 반환

 

SPACE(길이)

길이만큼 공백으로 반환

 

 

728x90
반응형