기록/DB

[MYSQL] 그룹함수

5월._. 2022. 5. 14.
728x90

1. 다중행 함수

하나의 값이 아닌 값들의 집합에 대해서 동작하는 함수다.

COUNT COUNT(필드) 선택된 필드에서 특정 조건을 만족하는 레코드의 총 개수를 반환한다. 없다면 0을 반환한다. 중복된 값을 제외하려면 DISTINCT 키워드를 사용한다.
MIN/MAX MIN(필드), MAX(필드) 선택된 필드에 저장된 값 중 가장 작은값/큰값을 반환한다.
SUM SUM(필드) 선택된 숫자타입의 필드에 저장된 값의 총 합을 반환한다.
AVG AVG(필드) 선택된 숫자타입의 필드에 저장된 값의 평균값을 반환한다.

 

2. 단일행 함수

문자열 함수

LENGTH() LENGTH('문자열') 전달받은 문자열의 길이 반환
CONCAT() CONCAT('문자열','문자열', ..) 전달받은 문자열을 모두 결합하여 하나의 문자열로 반환. 하나라도 NULL이 존재하면 NULL을 반환.
LOCATE() LOCATE('찾을문자열','원본문자열')
LOCATE('찾을문자열','원본문자열',찾기시작할인덱스)
찾을 문자열이 원본 문자열에서 처음으로 나타나는 위치를 반환한다. 없다면 0을 반환한다.
세번째 인수로 찾기 시작할 인덱스를 전달할 수 있다. MYSQL에는 문자열의 첫번째 인덱스를 1부터 시작해 계산하는 것을 주의해야 한다.
LEFT(),
RIGHT()
LEFT('문자열',개수)
RIGHT('문자열',개수)
전달받은 문자열의 왼쪽, 오른쪽부터 명시한 개수만큼의 문자를 반환한다.
LOWER(),
UPPER()
LOWER('문자열'),
UPPER('문자열')
전달받은 문자열을 모두 소문자, 대문자로 변경한다.
REPLACE() REPLACE('문자열', '특정문자열','대체문자열') 문자열에서 특정문자열을 찾아 대체 문자열로 변경한다.
TRIM() TRIM([BOTH|LEADING|TRAILING] '특정문자열' FROM '문자열') 전달받은 문자열의 앞, 뒤에 있는 특정 문자를 제거한다. 제거할 문자를 명시하지 않으면 자동으로 공백을 제거한다.
BOTH:양끝에있는 특정 문자열 제거
LEADING:앞에 있는 특정 문자열 제거
TRAILING:뒤에 있는 특정 문자열 제거
FORMAT() FORMAT('숫자데이터',반올림할소수자리수) 숫자타입의 데이터를 세 자리마다 쉼표를 사용하는 형식으로 변환해 문자열을 반환한다. 두번째 인수로 반올림할 소수 부분의 자릿수까지 전달할 수 있다.

 

수학 함수

올림/내림 CEIL(숫자), FLOOR(숫자)  
반올림 ROUND(숫자, 반올림할소수점) 두번째 인수로 반올림할 소수점을 전달할 수도 있다.
제곱근/제곱 SQRT(숫자), POW(숫자,숫자) SQRT는 제곱근 중 양수값, POW는 첫번째 숫자를 두번째 숫자만큼 곱해서 반환한다.
지수/로그 EXP(지수), LOG(숫자) EXP는 전달받은 지수의 e거듭제곱을 계산해 반환한다. LOG는 전달받은 수의 자연로그값을 계산해 반환한다.
삼각함수 SIN() COS() TAN()  
절대값 ABS(숫자)  
랜덤 RAND() 0.0보다 크거나 같고 1.0보다 작은 하나의 실수를 무작위로 생성해 반환한다.

 

날짜 함수

현재날짜,시간

NOW()
CURDATE()
CURTIME()
현재 날짜와 시간을 반환한다.
현재 날짜를 반환한다.
현재 시각을반환한다.
특정 날짜와 시간정보 DATE()
MONTH()
DAY()
HOUR()
MINUTE()
SECOND()
전달받은 값에 해당하는 날짜정보를 반환한다.
전달받은 값에서 월에 해당하는 값만을 반환한다.(0~12)
전달받은 값에서 일자에 해당하는 값만을 반환한다.(0~31)
전달받은 값에서 시간에 해당하는 값만을 반환한다.(0~23)
전달받은 값에서 분에 해당하는 값만을 반환한다.(0~59)
전달받은 값에서 초에 해당하는 값만을 반환한다.(0~59)
요일과 월 이름 MONTHNAME()
DAYNAME()
전달받은 값의 월에 해당하는 이름을 반환한다.
전달받은 값의 요일에 해당하는 이름을 반환한다.
연도별, 월별, 주별 일수 DAYOFWEEK()
DAYOFMONTH()
DAYOFYEAR()
전달받은 값의 일자가 해당 주에서 몇번째 날인지를 반환한다.
전달받은 값의 일자가 해당 월에서 몇번째 날인지를 반환한다.
전달받은 값의 일자가 해당 연도에서 몇번째 날인지를 반환한다.
날짜와 시간의 형식화 DAY_FORMAT() 전달받은 형식에 맞춰 날짜와 시간 정보를 문자열로 반환한다.

 

DAY_FORMAT 형식

%a 요일을 세 개의 문자로 표현함. Sun부터 Sat
%b 월의 축약형을 세 개의 문자로 표현함. Jan부터 Dec
%c 월을 숫자로 표현함. 0부터 12
%D 날짜 뒤에 영어 서수를 붙임 0th, 1st, 2nd, 3rd, ...
%d 날짜를 두 자리 숫자로 표현함. 00부터 31
%e 날짜를 숫자로 표현함. 0부터 31
%f 마이크로초를 여섯 자리 숫자로 표현함. 000000에서 999999
%H 24시간 형식 시간을 두 자리 숫자로 표현함. 00부터 23
%h 12시간 형식 시간을 두 자리 숫자로 표현함. 01부터 12
%I 12시간 형식 시간을 두 자리 숫자로 표현함. 01부터 12
%i 분을 두 자리 숫자로 표현함. 00부터 59
%j 일 년 중 몇 번째 날인지를 세 자리 숫자로 표현함. 001부터 366
%k 24시간 형식으로 시간을 표현함. 0부터 23
%l 12시간 형식으로 시간을 표현함. 1부터 12
%M 월을 완전한 문자열로 표현함. January부터 December
%m 월을 두 자리 숫자로 표현함. 00부터 12
%p 오전과 오후의 대문자를 표현함. AM 또는 PM
%r hh:mm:ss AM/PM 형식으로 시간을 표현함. (12시간 형식) 00:00:01 AM
%S 초를 두 자리 숫자로 표현함. 00부터 59
%s 초를 두 자리 숫자로 표현함. 00부터 59
%T hh:mm:ss 형식으로 시간을 표현함. (24시간 형식) 23:01:01
%U 일 년 중 몇 번째 주인지를 숫자로 표현함. (한 주는 일요일부터 시작함) 00부터 53
%u 일 년 중 몇 번째 주인지를 숫자로 표현함. (한 주는 월요일부터 시작함) 00부터 53
%V 일 년 중 몇 번째 주인지를 숫자로 표현함.
(한 주는 일요일부터 시작하고, %X 형식을 사용함)
00부터 53
%v 일 년 중 몇 번째 주인지를 숫자로 표현함.
(한 주는 월요일부터 시작하고, %x 형식을 사용함)
00부터 53
%W 요일을 완전한 문자열로 표현함. Sunday부터 Saturday
%w 요일을 숫자로 표현함. 0(일요일)부터 6(토요일)
%X 연도를 완전한 네 자리 숫자로 표현함.
(한 주는 일요일부터 시작하고, %V 형식을 사용함)
1999나 2003
%x 연도를 완전한 네 자리 숫자로 표현함.
(한 주는 월요일부터 시작하고, %v 형식을 사용함)
1999나 2003
%Y 연도를 완전한 네 자리 숫자로 표현함. 1999나 2003
%y 연도를 두 자리 숫자로 표현함. 99나 03
%% '%' 문자 %

 

 

출처 : http://www.tcpschool.com/mysql

'기록 > DB' 카테고리의 다른 글

[MYSQL] DCL(Data Control Language)  (0) 2022.05.13
[MYSQL] DML(Data Manipulation Language)  (0) 2022.05.12
[MYSQL] DDL(Data Definition Language)  (0) 2022.05.11

댓글