mysql 내장함수 , 사용자정의 함수 생성/사용

김병욱·2020년 3월 20일
2

Mysql

목록 보기
6/7

함수 사용

select 함수명(컬럼명) from 테이블명;

내장함수

숫자 관련 함수

ABS(숫자)

절대값 출력.

CEILING(숫자)

값보다 큰 정수 중 가장 작은 수.

FLOOR(숫자)

값보다 작은 정수 중 가장 큰 수, 실수를 무조건 버림(음수일 경우는 제외).

ROUND(숫자,자릿수)

숫자를 소수점 이하 자릿수에서 반올림.(자릿수는 양수,0,음수를 갖을 수 있다.)

TRUNCATE(숫자,자릿수)

숫자를 소수점 이하 자릿수에서 버림.

POW(X,Y) or POWER(X,Y)

X의 Y승

MOD (분자, 분모)

분자를 분모로 나눈 나머지를 구한다.(연산자 %와 같음)

GREATEST(숫자1,숫자2,숫자3...)

주어진 수 중 제일 큰 수 리턴.

LEAST(숫자1,숫자2,숫자3...)

주어진 수 중 제일 작은 수 리턴.

INTERVAL(a,b,c,d.....)

a(숫자)의 위치 반환.

문자 관련 함수

ASCII(문자)

문자의 아스키 코드값 리턴.

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

문자열들을 이어준다.

INSERT('문자열','시작위치','길이','새로운문자열')

문자열의 시작위치부터 길이만큼 새로운 문자열로 대치

REPLACE('문자열','기존문자열','바뀔문자열')

문자열 중 기존문자열을 바뀔 문자열로 바꾼다.

INSTR('문자열','찾는문자열')

문자열 중 찾는 문자열의 위치값을 출력.

LEFT('문자열',개수)

문자열 중 왼쪽에서 개수만큼을 추출.

RIGHT('문자열',개수)

문자열 중 오른쪽에서 개수만큼을 추출.

MID('문자열',시작위치,개수)

문자열 중 시작위치부터 개수만큼 출력.

SUBSTRING('문자열',시작위치,개수)

문자열 중 시작위치부터 개수만큼 출력.

LTRIM('문자열')

문자열 중 왼쪽의 공백을 없앤다.

RTRIM('문자열')

문자열 중 오른쪽의 공백을 없앤다.

TRIM('문자열')

양쪽 모두의 공백을 없앤다.

LCASE('문자열') or LOWER('문자열')

소문자로 바꾼다.

UCASE('문자열') or UPPER('문자열')

대문자로 바꾼다.

REVERSE('문자열')

문자열을 반대로 나열한다.

논리 관련 함수

IF(논리식,참일 때 값,거짓일 때 값)

논리식이 참이면 참일 때 값을 출력하고 논리식이 거짓이면 거짓일 때 출력한다.

IFNULL(값1,값2)

값1이 NULL 이면 값2로 대치하고 그렇지 않으면 값1을 출력

집계 함수

COUNT(필드명)

NULL 값이 아닌 레코드 수를 구한다.

SUM(필드명)

필드명의 합계를 구한다.

AVG(필드명)

각각의 그룹 안에서 필드명의 평균값을 구한다.

MAX(필드명)

최대값을 구한다.

MIN(필드명)

최소값을 구한다.

날짜 관련 함수

NOW() or SYSDATE() or CURRENT_TIMESTAMP()

현재 날짜와 시간 출력

CURDATE() or CURRENT_DATE()

현재 날짜 출력

CURTIME() or CURRENT_TIME()

현재 시간 출력

DATE_ADD(날짜,INTERVAL 기준값)

날짜에서 기준값 만큼 더한다.

※ 기준값 : YEAR, MONTH, DAY, HOUR, MINUTE, SECOND

DATE_SUB(날짜,INTERVAL 기준값)

날짜에서 기준값 만큼 뺸다.

YEAR(날짜)

날짜의 연도 출력.

MONTH(날짜)

날짜의 월 출력.

MONTHNAME(날짜)

날짜의 월을 영어로 출력.

DAYNAME(날짜)

날짜의 요일일 영어로 출력.

DAYOFMONTH(날짜)

날짜의 월별 일자 출력.

DAYOFWEEK(날짜)

날짜의 주별 일자 출력(월요일(0),화요일(1)...일요일(6))

WEEKDAY(날짜)

날짜의 주별 일자 출력(월요일(0),화요일(1)...일요일(6))

DAYOFYEAR(날짜)

일년을 기준으로 한 날짜까지의 날 수.

WEEK(날짜)

일년 중 몇 번쨰 주.

FROM_DAYS(날 수)

00년 00월 00일부터 날 수 만큼 경과한 날의 날짜 출력.

TO_DAYS(날짜)

00 년 00 월 00일 부터 날짜까지의 일자 수 출력.

DATE_FORMAT(날짜,'형식')

날짜를 형식에 맞게 출력.

타입 기호 설명 기호 설명
년도 %Y 4자리 연도 %y 2자리 년도

%M
%b

긴 월 이름 (January, ...)
짧은 월 이름(Jan, ...) %m
%c 숫자의 월 (01...12)
숫자의 월 (1...12)
요일 %W 긴 요일 이름 (Sunday, ...) %a 짧은 요일 이름 (Sun, ...)
일 %D
%w 월 내에서 서수 형식의 일(1th, ...)
숫자의 요일 (0=Sunday, ...) %d
%e
%j 월 내의 일자 (01...31)
월 내의 일자 (1...31)
일년 중의 날수 (001...366)
시 %l
%h
%I 12시간제의 시 (1...12)
12시간제의 시 (01...12)
12시간제의 시 (01...12) %k
%H 12시간제의 시 (0...23)
12시간제의 시 (00...23)
분 %i 숫자의 분 (00...59)
초 %S 숫자의 초 (00...59) %s 숫자의 초 (00...59)
시간 %r 12시간제의 시간 (hh:mm:ss AM 또는 PM) %T 24시간제의 시간 (hh:mm:ss)
주 %U 일요일을 기준으로 한 주 (0...52) %u 월요일을 기준으로 한 주 (0...52)
기타 %% 문자 '%' %p AM 또는 PM

기타함수

DATABASE()

현재의 데이터베이스 이름을 출력한다.

PASSWORD('문자열')

문자열을 암호화한다.

FORMAT(숫자,소수이하자리수)

숫자를 #,###,###.## 형식으로 출력

profile
개발스터디

0개의 댓글