SeSac (2021-08 ~ 2021-12)/MySQL

MySQL - 유용한 내장 함수들

배워도끝이없네 2021. 9. 5. 21:10

숫자와 관련된 함수

sum : 더하기

avg : 평균

min : 최소값

max : 최대값

mod : 나머지

count : row수 세기

stddev : 

var_samp

sin

cos

tan

acos

asin

atan

atan2

exp

ln

log

log2

log10

ceil

floor

round

abs : 절대값 반환

power

sqrt : 제곱근 계산

mod(%)

rand()

bin: 2진수로 바꾸기

hex: 16진수로 바꾸기

oct: 8진수로 바꾸기

conv('EF',16,10) : 16진수를 10진수로 바꾸기

 

형변환

select CAST('2018-12-25 11:22:22.123' AS DATETIME)

select CAST(1.577 AS Signed Integer) : 항상 반올림이 된다.

CONVERT(1.567, Signed Integer) : 항상 반올림이 된다.

select str_to_date('2018-12-13', '%Y-%m-%d') : date_format과 같은기능

 

문자열함수

concat

concat_ws: 구분자를 줄 수 있다.

group_concat: group by를 했을때 해당 부서의 내용들 전부 구분자로 연결시켜 하나의 컬럽에 합쳐준다.

length: 전체가 몇 바이트인지 반환한다.

char_length: 문자열의 길이를 반환한다.

bit_length: 전체가 몇 비트인지 반환한다

sign: 양수 음수

elt: n번째의 값을 가져온다

field: 문자열의 인덱스를 가져온다

find_in_set: 컴마로 이어진 문자열에서 인덱스를 가져온다(mysql은 인덱스가 1부터 시작한다)

instr: 문자열에서 몇번째 글자인지 인덱스를 가져온다.

locate: 문자열에서 몇번째 단어인지 인덱스를 가져온다.

insert: 문자열의 n번째 자리에 문자열을 삽입하거나 삭제한다.

 

format: 0을 주면 3번째 자리마다 숫자에 ,가 찍힌다, 

truncate: 잘라도 반올림 되지 않는다.(내림)

left: 문자열중 왼쪽 n개를 반환한다

upper: 대문자로 만들어준다

lower: 소문자로 만들어준다

lpad: 문자열을 n자리로 만들때 채워넣을 문자를 정한다 (왼쪽으로 삽입)

rpad: n자리로 만들때 채워넣을 문자를 정한다 (오른쪽으로 삽입)

reverse

repeat: 문자열을 n번 반복해준다

space: 문자열에 공백을 만들어준다

replace

trim: 양쪽의 공백을 없애준다 (both, leading, trailing으로 공백이 아닌 문자를 없앨 수도 있다)

ltrim: 왼쪽의 공백을 없애준다

rtrim: 오른쪽의 공백을 없애준다

 

substring('str',<idx>,<length>): 인덱스번째부터 length글자만큼 자른다.

substring_index

 

 

IF문

IF(식, 참일때, 거짓일때)

IfNull(col1, 'aa'): 널이면 두번째 값 넣어주기

NullIF(col1, col2):  두 값이 같으면 null을 넣는다

 

시간관련 함수

now: 년월일시분초

sysdate: 년월일시분초

curdate:년월일

curtime:시분초

year:년을반환

month:월을반환

day:일을반환

hour:시간을반환

minute:분을반환

second:초를 반환

quarter:분기를 반환

week

weekday : 월요일을 0으로 시작해서 0 1 2 3 4 5 6 로 요일을 반환함

dayofweek : 월요일을 1로 시작해서 숫자로 요일을 반환함.

DATE: 년월일

TIME: 시분초

MAKEDATE(년,일):해당년의 몇번째 일을 date타입으로 만들어준다 

MAKETIME(시,분,초): 해당시분초를 time타입으로 만들어준다.

dayofyear: 해당날이 올해의 몇번째 날인지 집계한다.

monthname: 해당날의 달 이름을 반환한다.

time_to_sec: 시분초를 초로 전환해준다

period_add: 년월에 월을 더한 날을 반환해준다

period_diff: 두 기간의 차이를 반환해준다

datediff

timediff

adddate: 해당날짜에서 n일을 더한 timestamp값을 반환해준다.(마이너스로 가능)

subdate: 해당날짜에서 n일을 뺀 timestamp값을 반환해준다.

addtime

subtime

DATE_FORMAT