행위

Mysql 함수

DB CAFE

thumb_up 추천메뉴 바로가기


1 Mysql 함수[편집]

1.1 변환 함수[편집]

CONVERT ( 컬럼명, 변환형 )

  • mysql 4.0 이상인 경우 사용가능!!
  • 변환형은 다음 주어진 형만 가능하다!
  1. binary
  2. char
  3. date
  4. datetime
  5. signed
  6. time
  7. unsigned

1.2 숫자관련 함수[편집]

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(숫자)의 위치 반환

1.3 문자관련 함수[편집]

ASCII(문자)
 	 문자의 아스키 코드값 리턴.
 CONCAT('문자열1','문자열2','문자열3'...)
 	 문자열들을 이어준다.
 INSERT('문자열','시작위치','길이','새로운문자열')
 	 문자열의 시작위치부터 길이만큼 새로운 문자열로 대치
 REPLACE('문자열','기존문자열','바뀔문자열')
 	 문자열 중 기존문자열을 바뀔 문자열로 바꾼다.
 INSTR('문자열','찾는문자열')
 	 문자열 중 찾는 문자열의 위치값을 출력.
 LEFT('문자열',개수)
 	 문자열 중 왼쪽에서 개수만큼을 추출.
 RIGHT('문자열',개수)
 	 문자열 중 오른쪽에서 개수만큼을 추출.
 MID('문자열',시작위치,개수)
 	 문자열 중 시작위치부터 개수만큼 출력.
 SUBSTRING('문자열',시작위치,개수)
 	 문자열 중 시작위치부터 개수만큼 출력.
 LTRIM('문자열')
 	 문자열 중 왼쪽의 공백을 없앤다.
 RTRIM('문자열')
 	 문자열 중 오른쪽의 공백을 없앤다.
 TRIM('문자열')
 	 양쪽 모두의 공백을 없앤다.
 LCASE('문자열') or LOWER('문자열')
 	 소문자로 바꾼다.
 UCASE('문자열') or UPPER('문자열')
 	 대문자로 바꾼다.
 REVERSE('문자열')
 	 문자열을 반대로 나열한다.

 비어있는 자릿수 0으로 채우기
 LPAD(컬럼,개수,문자) : 왼쪽편에 설정한 문자 추가 
 RPAD(컬럼,개수,문자) : 오른쪽편에 설정한 문자 추가 
select LPAD(컬럼명, 대상 값의 크기를 포함한 갯수 , 삽입할 문자) from 테이블명;

1.3.1 문자형변환 함수[편집]

CAST( 컬럼 as 형변환 타입)
  • cast type의 종류
  1. binary
  2. char
  3. signed (부호있는 숫자)
  4. date
  5. datetime
  6. time
  7. unsigned (부호없는 숫자)

예시) select cast('1' as unsigned) as test;

select cast(2 as char(1)) as test;

1.4 논리관련 함수[편집]

IF(논리식,참일 때 값,거짓일 때 값)
 	 논리식이 참이면 참일 때 값을 출력하고 논리식이 거짓이면 거짓일 때 출력한다.
 IFNULL(값1,값2)
 	 값1이 NULL 이면 값2로 대치하고 그렇지 않으면 값1을 출력

1.5 집계 합수[편집]

COUNT(필드명)
 	 NULL 값이 아닌 레코드 수를 구한다.
 SUM(필드명)
 	 필드명의 합계를 구한다.
 AVG(필드명)
 	 각각의 그룹 안에서 필드명의 평균값을 구한다.
 MAX(필드명)
 	 최대값을 구한다.
 MIN(필드명)
 	 최소값을 구한다.

1.6 날짜관련 함수[편집]

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, DAY, HOUR, MINUTE, SECOND
 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

날짜포맷

%a Abbreviated weekday name (Sun..Sat)

%b Abbreviated month name (Jan..Dec)

%c Month, numeric (0..12)

%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)

%d Day of the month, numeric (00..31)

%e Day of the month, numeric (0..31)

%f Microseconds (000000..999999)

%H Hour (00..23)

%h Hour (01..12)

%I Hour (01..12)

%i Minutes, numeric (00..59)

%j Day of year (001..366)

%k Hour (0..23)

%l Hour (1..12)

%M Month name (January..December)

%m Month, numeric (00..12)

%p AM or PM

%r Time, 12-hour (hh:mm:ss followed by AM or PM)

%S Seconds (00..59)

%s Seconds (00..59)

%T Time, 24-hour (hh:mm:ss)

%U Week (00..53), where Sunday is the first day of the week; WEEK() mode 0

%u Week (00..53), where Monday is the first day of the week; WEEK() mode 1

%V Week (01..53), where Sunday is the first day of the week; WEEK() mode 2; used with %X

%v Week (01..53), where Monday is the first day of the week; WEEK() mode 3; used with %x

%W Weekday name (Sunday..Saturday)

%w Day of the week (0=Sunday..6=Saturday)

%X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V

%x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v

%Y Year, numeric, four digits

%y Year, numeric (two digits)

%% A literal % character

%x x, for any “x” not listed above

예시)

date_format(datetime, '%Y-%m-%d')

1.7 기타함수[편집]

DATABASE()
 	 현재의 데이터베이스 이름을 출력한다.
 PASSWORD('문자열')
 	 문자열을 암호화한다.
 FORMAT(숫자,소수이하자리수)
 	 숫자를 #,###,###.## 형식으로 출력