🌞 제어 흐름 함수
🌼 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,200), IFNULL(200,100);
결과 : 100, 200
🌼 CASE ~ WHEN ~ ELSE ~ END
-
CASE는 내장 함수는 아니며 연산자로 분류
-
다중 분기에 사용
SELECT CASE 10
WHEN 1 THEN '일'
WHEN 5 THEN '오'
WHEN 10 THEN '십'
ELSE '모름'
END;
결과 : 10 (이유 : CASE 10 이기 때문 )
🌞 문자열 함수
ASCII( 아스키 코드)
CHAR(숫자)
BIT_LENGTH(문자열)
CHAR_LENGTH(문자열)
LENGTH(문자열)
CONCAT(문자열1, 문자열2 ...)
CONCAT_WS(구분자, 문자열1, 문자열2, ...)
ELT(위치, 문자열1, 문자열2, ...)
SELECT ELT(2, '하나', '둘', '셋');
결과 : 둘
FIELD(찾을 문자열, 문자열1, 문자열2, ...)
SELECT FIELD('둘','하나','둘','셋');
결과 : 2
FIND_IN_SET(찾을 문자열, 문자열 리스트)
SELECT FIND_IN_SET('둘','하나,둘,셋');
결과 : 2
INSTR(기준 문자열, 부분 문자열)
시작 위치 반환
SELECT INSTR('하나둘셋','둘');
결과 : 3
LOCATE(부분 문자열, 기준 문자열)
SELECT LOCATE('둘','하나둘셋');
결과 : 3
BIN(숫자), HEX(숫자), OCT(숫자)
INSERT(기준 문자열, 위치, 길이, 삽입할 문자열)
LEFT(문자열, 길이), RIGHT(문자열, 길이)
UCASE(문자열), LCASE(문자열)
UPPER(문자열), LOWER(문자열)
LPAD(문자열, 길이, 채울 문자열), RPAD(문자열, 길이, 채울 문자열)
- 문자열을 길이만큼 늘린 후에 빈 곳을 채울 문자열로 채움
LTRIM(문자열), RTRIM(문자열)
-
문자열의 왼쪽/오른쪽 공백을 제거
-
중간의 공백은 제거되지 않음
TRIM(문자열), TRIM(방향 자를_문자열 FROM 문자열)
-
TRIM(문자열)은 문자열의 앞뒤 공백을 모두 없앰
-
TRIM(방향 자를_문자열 FROM 문자열) 에서 방향은 LEADING(앞), BOTH(양쪽),
TRAILING(뒤) 으로 표시
REPEAT(문자열, 횟수)
REPLACE(문자열, 원래 문자열, 바꿀 문자열)
REVERSE(문자열)
SPACE(길이)
SUBSTRING(문자열, 시작위치, 길이) 또는 SUBSTRING(문자열 FROM 시작위치 FOR 길이)
SELECT SUBSTRING('대한민국만세', 3, 2);
결과 : 민국
SUBSTRING_INDEX(문자열, 구분자, 횟수)
🌞 수학 함수
ABS(숫자)
ACOS(숫자), ASIN(숫자), ATAN(숫자), ATAN2(숫자1, 숫자2), SIN(숫자), COS(숫자), TAN(숫자)
CELING(숫자), FLOOR(숫자), ROUND(숫자)
CONV(숫자, 원래 진수, 변환할 진수)
DEGREES(숫자), RANDIANS(숫자), PI()
EXP(X), LN(숫자), LOG(숫자), LOG(밑수, 숫자), LOG2(숫자), LOG10(숫자)
MOD(숫자1, 숫자2) or 숫자1 % 숫자2 or 숫자1 MOD 숫자2
POW(숫자1, 숫자2), SORT(숫자)
RAND( )
SIGN(숫자)
TRUNCATE(숫자, 정수)
🌞 날짜 및 시간 함수
ADDDATE(날짜, 차이), SUBDATE(날짜, 차이)
ADDTIME(날짜/시간, 시간), SUBTIME(날짜/시간, 시간)
CURDATE(), CURTIME(), NOW(), SYSDATE()
YEAR(날짜), MONTH(날짜), DAY(날짜), HOUR(시간), MINUTE(시간), SECOND(시간), MICROSECOND(시간)
DATE(),TIME()
DATEDIFF(날짜1, 날짜2), TIMEDIFF(날짜1 또는 시간1, 날짜2 또는 시간 2)
DAYOFWEEK(날짜), MONTHNAME(), DAYOFYEAR(날짜)
LAST_DAY(날짜)
MAKEDATE(연도, 정수)
MAKETIME(시, 분, 초)
PERIOD_ADD(연월, 개월수), PERIOD_DIFF(연월1, 연월2)
QUARTER(날짜)
TIME_TO_SEC(시간)
🌞 시스템 정보 함수
USER(), DATABASE()
FOUND_ROWS()
ROW_COUNT()
VERSION()
SLEEP()