MySQL 내장함수

원래벌레·2022년 10월 18일
0
post-custom-banner

🌞 제어 흐름 함수

🌼 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

FORMAT(숫자, 소수점 자릿수)

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(문자열, 원래 문자열, 바꿀 문자열)

  • 문자열에서 원래 문자열을 찾아서 바꿀 문자열로 바꿈
    SELECT REPLACE ('이것이 MySQL이다', '이것이', 'This is');
    결과 : 'This is MySQL이다'

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()

profile
학습한 내용을 담은 블로그 입니다.
post-custom-banner

0개의 댓글