728x90
반응형
1. 수학 함수
1. ABS(숫자)
▷ 숫자의 절댓값 계산
-- ABS(숫자) : 절댓값 select abs(-100); -- 100 반환
2. ACOS(숫자), ASIN(숫자), ATAN(숫자), ATAN2(숫자1, 숫자2), SIN(숫자), COS(숫자), TAN(숫자)
▷ 삼각 함수와 관련된 함수 제공
3. CEILING(숫자), FLOOR(숫자), ROUND(숫자)
▷ 올림, 내림, 반올림 계산
-- CEILING(숫자) : 올림 = ceil() -- FLOOR(숫자) : 내림 -- ROUND(숫자) : 반올림 select ceiling(4.7), floor(4.7), round(4.7); -- 5, 4, 5 반환
4. CONV(숫자, 원래 진수, 변환할 진수)
▷ 숫자를 원래 진수에서 변환할 진수로 계산
-- CONV(숫자, 원래 진수, 변환할 진수) : 진수 변환 select conv('A4', 16, 2), conv(100, 10, 8); -- 10100100, 144 반환
5. DEGREES(숫자), RADIANS(숫자), PI ( )
▷ 라디안 값을 각도 값으로, 각도 값을 라디안 값으로 변환, PI()는 3.141592 반환
-- DEGREES(숫자) : 라디안 값을 각도 값으로 -- RADIANS(숫자) : 각도 값을 라디안으로 변환 -- PI ( ) select degrees(pi()), radians(180); -- 180, 3.141592653589793 반환
6. EXP(X), LN(숫자), LOG(숫자), LOG(밑수, 숫자), LOG2(숫자), LOG10(숫자)
▷ 지수, 로그와 관련된 함수 제공
7. MOD(숫자1, 숫자2) 또는 숫자1 % 숫자2 또는 숫자1 MOD 숫자2
▷ 숫자1을 숫자2로 나눈 나머지 값을 구함
-- MOD(숫자1, 숫자2) : 숫자1을 숫자2로 나눈 나머지 -- 숫자1 % 숫자2 -- 숫자1 MOD 숫자2 select mod(157,10), 157%10, 157 mod 10; -- 7, 7, 7 반환
8. POW(숫자1, 숫자2), SQRT(숫자)
▷ 거듭제곱값 및 제곱근을 구함
-- POW(숫자1, 숫자2) : 거듭제곱 값 -- SQRT(숫자) : 제곱근 select pow(2,3), sqrt(9); -- 8, 3 반환
▷ RAND( )는 0 이상 1 미만의 실수 구함
-- RAND() : 0~1 미만의 실수를 구하게 됩니다. (랜덤 값을 구할 때) select rand(), floor(1 + (rand() * (7-1))); -- 0.493648..., 6 반환
9. SIGN(숫자)
▷ 숫자가 양수, 0, 음수인지 판별, 결과는 1, 0, -1 셋 중에 하나 반환
-- SIGN(숫자) : 양수 = 1, 0 = 0, 음수 = -1 select sign(100), sign(0), sign(-100.123); -- 1, 0, -1 반환
10. TRUNCATE(숫자, 정수)
▷ 숫자를 소수점을 기준으로 정수 위치까지 구하고 나머지는 버림
-- truncate(숫자, 정수) : 숫자를 소수점을 기준으로 정수 위치까지 구하고 나머지는 버린다. -- 양수면 소수점 자리수 이후에 버림, 음수면 정수 자리까지 버림 select truncate(12346.12345, 2), truncate(12346.12345, -2); -- 12346.12, 12300 반환
2. 날짜 및 시간 함수
1. ADDDATE(날짜, 차이), SUBDATE(날짜, 차이)
▷ 날짜를 기준으로 차이를 더하거나 뺀 날짜 구함
-- ADDDATE(날짜, 차이) : 날짜를 기준으로 추가(이후 날짜를 구할 때) -- SUBDATE(날짜, 차이) : 날짜를 기준으로 빼기(이전 날짜를 구할 때) select adddate('2023-02-07', interval 31 day), adddate('2023-02-07', interval 1 month); -- 2023-03-10, 2023-03-07 반환 select subdate('2023-02-07', interval 31 day), subdate('2023-02-07', interval 1 month); -- 2023-01-07, 2023-01-07 반환
2. ADDTIME(날짜/시간, 시간), SUBTIME(날짜/시간, 시간)
▷ 날짜/시간을 기준으로 시간을 더하거나 뺀 결과를 구함
-- ADDTIME(날짜/시간, 시간) : 이후 시간을 구할 때 -- SUBTIME(날짜/시간, 시간) : 이전 시간을 구할 때 select addtime('2023-02-07 11:22:59', '1:1:1'), addtime('11:22:59', '2:10:10'); -- 2023-02-07 12:24:00, 13:33:09 반환 select subtime('2023-02-07 11:22:59', '1:1:1'), subtime('11:22:59', '2:10:10'); -- 2023-02-07 10:21:58, 09:12:49 반환
3. CURDATE( ), CURTIME( ), NOW( ), SYSDATE( )
▷ CURDATE( ) : 현재 연-월-일
▷ CURTIME( ) : 현재 시 : 분 : 초
▷ NOW( ), SYSDATE( ) : 현재 ‘연-월-일 시 : 분 : 초
-- CURDATE( ) : 현재 날짜 연-월-일 -- CURTIME( ) : 현재 시간 시:분:초 -- NOW( ), SYSDATE( ) : 시스템 현재 날짜 시간 연-월-일 시:분:초 select curdate(), curtime(), now(), sysdate(); -- 2023-02-07, 11:29:54, 2023-02-07 11:29:54, 2023-02-07 11:29:54 반환
4. YEAR(날짜), MONTH(날짜), DAY(날짜), HOUR(시간), MINUTE(시간), SECOND(시간), MICROSECOND(시간)
▷ 날짜 또는 시간에서 연, 월, 일, 시, 분, 초, 밀리초 구함
-- YEAR(날짜) -- MONTH(날짜) -- DAY(날짜) -- HOUR(시간) -- MINUTE(시간) -- SECOND(시간) -- MICROSECOND(시간) select year(curdate()), month(curdate()), dayofmonth(curdate()); -- 2023, 2, 7 반환 select hour(curtime()), minute(curtime()), second(curtime()), microsecond(current_time()); -- 11, 33, 16, 0 반환 -- 여기서 micosecond는 출력이 되지않습니다. -- curtime(), current_time() 둘 다 사용해도 무관합니다.
5. DATE( ), TIME( )
▷ DATETIME 형식에서 연-월-일 및 시 : 분 : 초만 추출
-- DATE( ) : 연-월-일 -- TIME( ) : 시:분:초 select date(now()), time(now()); -- 2023-02-07, 11:34:51 반환
6. DATEDIFF(날짜1, 날짜2), TIMEDIFF(날짜1 또는 시간1, 날짜1 또는 시간2)
▷ DATEDIFF( )는 날짜1-날짜2의 일수를 결과로 구함
-- DATEDIFF(날짜1, 날짜2) : 날짜1, 날짜2의 차이 일수(날짜 차이) -- TIMEDIFF(날짜1 또는 시간1, 날짜1 또는 시간2) : 시간 차이를 구할 때 select datediff('2023-03-31', now()); -- 52 반환 select timediff('23:23:59', '11:38:59'); -- 11:45:00 반환
7. DAYOFWEEK(날짜), MONTHNAME( ), DAYOFYEAR(날짜)
▷ 요일(1:일, 2:월~7:토) 및 1년 중 몇 번째 날짜인지 구함
-- DAYOFWEEK(날짜) : 한 주의 요일 출력(일 : 1, 월 : 2, 화 : 3, ..., 토 : 7) -- MONTHNAME( ) : 달의 이름 -- DAYOFYEAR(날짜) : 일년 중 몇 일이 지났는지 select dayofweek(curdate()), monthname(curdate()), dayofyear(curdate()); -- 3, February, 38 반환
8. LAST_DAY(날짜)
▷ 주어진 날짜의 마지막 날짜를 구함
-- LAST_DAY(날짜) : 주어진 날짜의 달에 마지막 일을 구할 때 select last_day('2024-02-02'); -- 2024-02-29 반환
9. MAKEDATE(연도, 정수)
▷ 연도에서 정수만큼 지난 날짜 구함
-- MAKEDATE(연도, 정수) : 연도에서 정수만큼 지난 일자를 구할 때 select makedate(2025, 32); -- 2025-02-01 반환
10. MAKETIME(시, 분, 초)
▷ 시, 분, 초를 이용해서 ‘시 : 분 : 초’의 TIME 형식 만듦
-- MAKETIME(시, 분, 초) : 시:분:초 형태로 변환 select maketime(11, 49, 59); -- 11:49:59 반환
11. PERIOD_ADD(연월, 개월수), PERIOD_DIFF(연월1, 연월2)
▷ PERIOD_ADD( )는 연월에서 개월만큼의 개월이 지난 연월 구함
▷ PERIOD_DIFF( )는 연월1-연월2의 개월수 구함
-- PERIOD_ADD(연월, 개월수) : 연월에서 개월수 지난 날짜 -- PERIOD_DIFF(연월1, 연월2) : 연월1과 연월2의 차이 월 select period_add(202501, 11), period_diff(202501, 202312); -- 202512, 13 반환
12. QUARTER(날짜)
▷ 날짜가 4분기 중에서 몇 분기인지를 구함
-- QUARTER(날짜) : 4분기 : 1분기(1~3), 2분기(4~6), 3분기(7~9), 4분기(10~12) select quarter('2025-07-07'); -- 3 반환
13. TIME_TO_SEC(시간)
▷ 시간을 초 단위로 구함
-- TIME_TO_SEC(시간) : 시간을 초 단위 환산 select time_to_sec('12:11:10'); -- 43870 반환
3. 시스템 정보 함수 : 시스템의 정보를 출력하는 함수
1. USER(), DATABASE()
▷ USER() : 현재 접속한 사용
▷ DATABASE() : 현재 선택된 데이터베이스
-- USER() : 현재 접속한 사용자 -- DATABASE() : 현재 선택된 데이터베이스 use sqldb; select current_user(), database(); -- root@%, sqldb 반환
2. FOUND_ROWS()
▷ 바로 앞의 SELECT 문을 실행해서 조회된 행의 개수
-- FOUND_ROWS() : 바로 앞의 SELECT 문을 실행해서 조회된 행의 개수 use sqldb; select * from usertbl; select found_rows(); -- 10 반환
3. ROW_COUNT()
▷ 바로 앞의 INSERT, UPDATE, DELETE 문에서 입력, 수정, 삭제된 행의 개수
▷ DROP문은 0을 반환하고 SELECT문은 -1을 반환한다
-- ROW_COUNT() : 바로 앞의 INSERT, UPDATE, DELETE 문에서 입력, 수정, 삭제된 행의 개수 -- DROP문은 0을 반환하고 SELECT문은 -1을 반환한다. use sqldb; set SQL_SAFE_UPDATES = 0; update buytbl set price = price * 2; select row_count(); -- 12 반환
4. version()
▷ 현재 MySQL의 버전
-- version() : 현재 MySQL의 버전 select version(); -- 8.0.32 반환
5. SLEEP(초)
▷ 일시정지
-- SLEEP(초) : 일시정지 select sleep(5); select '5초 후 보여지는 항목'; -- 5초 후 '5초 후 보여지는 항목' 반환
수학 함수, 날짜 및 시간 함수, 시스템 정보 함수 등을 공부해보았습니다!!
MySQL은 종류가 되게 많네요!
더 다양한 함수에 대해서 보고싶다면 아래의 사이트로 접속하세요.
http://dev.mysql.com/doc/refman/8.0/en/functions.html
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형