
CURTIME 현재 시각을 출력
CURDATE 현재 일자를 출력
NOW 하나의 쿼리나 함수가 호출된(시작된) 시각
SYSDATE 호출된 함수가 수행 완료된 시점의 시각
GMT/UTC, 타임존 확인 및 국가별 시간 형식에 대하여
UTC 시간을 불러오는 UTC_TIMESTAMP
시간대를 변환하는 CONVERT_TZ()
지역별, 국가별 일자 및 시간 표준 형식을 확인하는 GET_FORMAT()
DATE형을 문자형으로 바꿔주는 DATE_FORMAT(), TIME_FORMAT()
문자형을 DATE형으로 바꿔주는 STR_TO_DATE()
그리고 다양한 DATE 포맷들에 대하여
MariaDB에서 제공하는 YEAR년도, DATE년월일, TIME시간, DATETIME년월일시간,
TIMESTAMP표준시간대에 의한 년월일시간 등의 데이터 타입들에 대하여
일자와 시간을 더해주는 ADDDATE,DATE_ADD
일자와 시간을 빼주는 SUBDATE,DATE_SUB
지정된 시간에서 원하는 만큼 시간을 빼주는 SUBTIME
두 날짜 사이의 차이를 알려주는 DATEDIFF
그리고 Date, Time과 관련된 MairaDB의 여러가지 시간 단위들
TO_SECONDS 0년 이후의 초 수
TO_DAYS 0년 이후의 일 수
SEC_TO_TIME 입력된 시간을 시:분:초로 변형
TIME_TO_SEC 입력된 시간을 초로 환산
EXTRACT 원하는 시간(일자) 단위를 추출
PERIOD_ADD 두 기간 사이의 개월 수
PERIOD_DIFF 기준월에 개월 더하기
DAYOFYEAR 년도를 추출
DAYNAME 요일명을 출력
DAYOFWEEK 요일에 해당하는 정수값을 출력
DAY 일자를 출력
DAYOFMONTH 월을 출력
FROM_DAYS 입력받은 일수로부터 년월일을 출력
TO_DAYS 입력받은 년월일로부터 일수를 출력
YEAR 년도 추출
QUARTER 분기 추출
MONTH 월 추출
MONTHNAME 국가별 월명 추출
HOUR 시간 추출
MINUTE 분 추출
SECOND 초 추출
MICROSECOND 마이크로초 추출
WEEK 주차 조회
TIMESTAMP DATETIME 형식으로 변환하여 출력
TIMESTAMPDIFF 시간 예약어를 통해 두 시각의 차이를 리턴
TIMESTAMPADD 시간 예약어를 통해 두 시각의 합을 리턴
TIMEDIFF 첫 번째 인자값에서 두 번째 인자값을 뺀 후, 시:분:초 형식으로 출력
LAST_DAY 해당 월의 마지막 일자를 출력
YEARWEEK 해당 일자의 연도와 몇 주차인지를 반환
WEEKOFYEAR 해당 일자가 몇 주차 인지 출력(1~52)
WEEKDAY 요일에 대해 정의된 정수값을 리턴
(*) WEEKDAY()가 출력하는 요일별 숫자
0=Monday
1=Tuesday
2=Wednesday
3=Thursday
4=Friday
5=Saturday
6=Sunday
MAKETIME 시,분,초 값을 입력받아 TIME 유형으로 시간을 출력
MAKEDATE 년도값과 누적일수값을 받아 YYYYMMDD 형식으로 출력
UNIX_TIMESTAMP YYYY-MM-DD HH:MI:SS 값을 입력받아 1970-01-01 00:00:00(UTC)로부터 누적된 초 값을 리턴(대한민국의 경우, 1970-01-01 09:00:00(UTC+9)가 기준.
FROM_UNIXTIME UNIX_TIMESTAMP()에서 리턴된 값을 다시 YYYY-MM-DD HH:MI:SS 형식으로 출력
FORMAT 세 자리마다 컴마를 지정하고 소수점 이하 자릿수를 결정
FIELD 첫 번째 인자값이 몇 번째 인덱스 위치에 나타나는지를 출력
ELT 첫 번째 인자값을 보고 뒤 쪽에 나열된 중 해당 인덱스의 값을 출력
CONVERT 첫 번째 인자값을 두 번째 값(데이터 유형)에 의해 변환 후 출력
CAST 입력받은 데이터를 지정된 데이터 유형으로 변환
QUOTE 입력받은 문자열의 좌우측에 외따옴표(')를 붙여 출력
UPPER 영문자의 경우, 모두 대문자로 변환하여 출력
LOWER 영문자의 경우, 모두 소문자로 변환하여 출력
CONCAT 인자값으로 받은 모든 문자열들을 연결하여 하나의 컬럼값으로 출력
CONCAT_WS 첫 번째 인자값으로 나머지 인자값 전부를 연결하여 하나의 컬럼값으로 출력
CHR 아스키코드값을 받아 해당 문자를 출력
CHAR_LENGTH 구분 가능한 문자열의 길이를 출력
LENGTH 문자열을 구성하는 BYTE 길이를 출력 (MariaDB 기본 모드)
LENGTHB 문자열을 구성하는 BYTE 길이를 출력 (MariaDB 기본 모드)
MID 지정된 문자열의 몇 번째 위치에서 몇 개의 문자 가져오기
LEFT 지정된 문자열의 좌측으로부터 몇 개의 문자 가져오기
RIGHT 지정된 문자열의 우측으로부터 몇 개의 문자 가져오기
LPAD 지정된 문자열을 지정된 공간에 채운 후, 좌측을 특정 문자로 채우기
RPAD 지정된 문자열을 지정된 공간에 채운 후, 우측을 특정 문자로 채우기
TRIM 지정된 문자열의 양측 빈 공간을 삭제
LTRIM 지정된 문자열의 좌측 빈 공간을 삭제
RTRIM 지정된 문자열의 우측 빈 공간을 삭제
INSTR 첫 번째 인자값에서 두 번째 인자값이 위치한 시작점의 위치 반환
STRCMP 두 개의 인자값이 동일하다면 0, 첫 번째가 크다면 1, 두 번째가 크다면 -1을 반환
LOCATE 두 번째 인자값에서 첫 번째 인자값이 위치한 시작점의 위치 반환
POSITION 앞 쪽 인자값이 IN 조건값에서 위치한 시작점의 위치 반환
INSERT 지정된 문자열의 시작점과 마침점을 특정한 문자열로 대체
SUBSTRING 지정된 문자열에서 시작점과 문자 개수로 잘라내 반환
SUBSTRING_INDEX 지정된 문자열과 구분자로 지정된 문자열을 반환
REPLACE 지정된 문자열에서 지정된 문자를 다른 문자로 변환해 반환
SPACE 빈 공백을 지정된 개수만큼 출력
REVERSE 지정된 문자열을 문자 단위로 거꾸로 출력
REPEAT 지정된 문자열을 지정된 횟수만큼 반복해 출력
Subtraction Operator(-) 빼기 연산자
Addition Operator(+) 더하기 연산자
Multiplication Operator(*) 곱하기 연산자
Division Operator(/) 나누기 연산자
DIV 몫 구하기 연산자
MOD, Modulo Operator(%) 나머지 연산자
LEAST 인자값 중 최소값 가져오기
GREATEST 인자값 중 최대값 가져오기
SIGN 인자값이 음수, 0, 양수인지에 따라 -1, 0 또는 1을 반환
ABS 절대값 연산자
ROUND 지정 소수점 반올림 연산자
TRUNCATE 지정 소수점 버림 연산자
CEILING 인자값보다 큰 정수 중 가장 작은 수를 출력
FLOOR 인자값보다 작은 정수 중 가장 큰 수를 출력
RAND 0~1 사이 임의의 실수값 혹은 시드에 따라 난수값 발생
COALESCE 여러 개의 인자값들 중, NULL값이 아닌 첫 번째 인자값을 출력
IF(e1,e2,e3) e1이 참이면 e2를, 거짓이면 e3를 반환
CASE OPERATOR when~then 문법으로 다수의 비교 실행문
NULLIF(e1,e2) e1과 e2가 같으면 NULL을, 같지 않으면 e1를 반환
IFNULL(e1,e2) e1이 NULL이 아니면 e1을, NULL이면 e2를 반환
COUNT 전체 건수를 출력
COUNT DISTINCT 유일한 값의 건수를 출력
SUM 그룹핑 된 컬럼 집합에 속한 값을 합산하여 반환
MIN 그룹핑 된 컬럼 집합에 속한 값들 중 최소값을 반환
MAX 그룹핑 된 컬럼 집합에 속한 값들 중 최대값을 반환
AVG 그룹핑 된 컬럼 집합에 속한 값의 평균값을 반환
GROUP_CONCAT 그룹핑 된 컬럼 집합에 속한 값들을 컴마(,)로 연결해 한 건의 레코드로 출력
HeidiSQL 개발 도구를 이용해 MariaDB에서 제공되는 108개 이상의 내부함수들에 대한 사용법 및 활용 예제들을 살펴봅니다.
시간, 문자 및 문자열, 숫자 및 연산, IF,CASE 제어문 및 그룹 데이터를 다루는 내부함수들에 대하여 상세히 배웁니다.
실제 업무에 응용될 수 있는 다양한 활용 예제들과 더불어 MariaDB 내부함수와 관련된 데이터베이스 제반 정보들을 알아봅니다.
MariaDB를 사용해 데이터를 처리하는 과정에서 SQL 문을 보다 더 효율적으로 사용할 수 있는 방법이란 내부적으로 제공되는 함수들을 활용하는 것입니다. 필요에 따라 프로시저나 펑션을 개발하는 것보다 기존에 제공되는 함수들을 활용하는 것이 정확성이나 효율성 측면에서 유리합니다. 개발자나 분석가에게 필요한 대부분의 기능들은 이미 Built-in 내부함수로 구현되어 있습니다. 따라서 MariaDB에서 이미 제공되는 내부함수들의 종류나 사용법을 숙지하고 있다면 짧은 시간 내에 원하는 결과를 보다 정확히 얻을 수 있을 것입니다.
본 강의에서는 MariaDB에서 제공하는 무수한 내부 함수 중 사용빈도가 높은 것들을 추려 그 활용 및 응용 예제를 배울 수 있습니다. MariaDB가 보장하고 지원하는 내부 함수들을 잘 알고 있다면 다양한 통계를 생성하고 만드는데 기술적 밑받침이 될 수 있습니다.