• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 1. 함수와 연산자 참조
    2. 식 평가 형식 변환
    3. 연산자
    4. 제어 흐름 함수
    5. 문자열 함수
    6. 수치 함수와 연산자
    1. 산술 연산자
    2. 수학 함수
    7. 날짜 및 시간 함수
    8. MySQL에서 사용되는 달력
    9. Full-Text 검색 기능
    10. 캐스트 함수와 연산자
    11. XML 함수
    12. 비트 함수
    13. 암호화 함수와 압축 함수
    14. 정보 함수
    15. 공간 분석 함수
    16. 글로벌 트랜잭션 ID와 함께 사용되는 함수
    17. MySQL Enterprise Encryption 기능
    18. 기타 함수
    19. GROUP BY 절에서 사용되는 함수와 수식
    20. 정밀 계산
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

12.6.1 산술 연산자

표 12.11 산술 연산자

이름 설명
DIV 정수 나누기
/ 나누기 연산자
- 빼기 연산자
% , MOD 모듈로 연산자
+ 덧셈 연산자
* 곱셈 연산자
- 인수의 부호를 변경합니다

일반적으로 산술 연산자를 사용할 수 있습니다. 결과는 다음 규칙에 따라 결정됩니다.

  • - , + , 그리고 * 의 경우는 두 피연산자가 정수이면 결과가 BIGINT (64 비트) 정밀도로 계산됩니다.

  • 두 피연산자가 모두 정수 중 하나가 부호가없는 경우는 결과가 부호가없는 정수입니다. 빼기는 NO_UNSIGNED_SUBTRACTION SQL 모드가 활성화되어있는 경우 피연산자 중 하나가 부호 없음에도 결과가 부호 첨부합니다.

  • + , - , / , * , % 피연산자 중 하나가 실수 또는 문자열 값이면 결과의 정밀도가 최대 정밀도를 갖는 피연산자의 정밀도입니다.

  • / 를 사용하여 수행되는 나누기는 2 개의 정확한 값 피연산자를 사용했을 때의 결과의 스케일이 첫 번째 피연산자 div_precision_increment 시스템 변수 (기본적으로 4)의 값을 더한 값이됩니다 . 예를 들어, 식 5.05 / 0.014 의 결과의 스케일은 소수점 이하 6 자리입니다 ( 360.714286 ).

중첩 된 계산이 각 구성 요소의 정확도를 암시 적으로 나타내는 바와 같이, 이러한 규칙은 연산별로 적용됩니다. 따라서 (14620 / 9432456) / (24250 / 9432456) 는 먼저 (0.0014) / (0.0026) 에 풀려 최종 결과는 소수점 8 자리 ( 0.60288653 )입니다.

이러한 규칙 및 그들이 적용되는 방법이 있기 때문에 계산의 구성 요소 및 하위 구성 요소에 적절한 정밀도 수준이 사용되고 있는지를 신중하게 확인하십시오. 섹션 12.10 「캐스트 함수 및 연산자 " 를 참조하십시오.

숫자 식 평가에서 오버 플로우 내용은 섹션 11.2.6 "범위 및 오버플로 처리" 를 참조하십시오.

산술 연산자는 숫자에 적용됩니다. 다른 형태의 값으로 대체 연산을 사용할 수도 있습니다. 예를 들어, 날짜 값을 추가하려면 DATE_ADD() 를 사용합니다. 섹션 12.7 "날짜 및 시간 함수" 를 참조하십시오.

  • +

    추가 :

     mysql> SELECT 3+5;
             -> 8
    
  • -

    뺄셈 :

     mysql> SELECT 3-5;
             -> -2
    
  • -

    단항 마이너스. 이 연산자는 피연산자의 부호를 변경합니다.

     mysql> SELECT - 2;
             -> -2
    
    참고

    이 연산자가 BIGINT 로 사용되는 경우, 반환 값도 BIGINT 됩니다. 즉 -2 63을 가질 가능성이있는 정수는 - 의 사용을 피해야한다.

  • *

    곱셈 :

     mysql> SELECT 3*5;
             -> 15
     mysql> SELECT 18014398509481984*18014398509481984.0;
             -> 324518553658426726783156020576256.0
     mysql> SELECT 18014398509481984*18014398509481984;
             -> out-of-range error
    

    마지막 식에서는 정수 곱셈의 결과가 64 비트 범위의 BIGINT 계산을 초과하기 때문에 오류가 생성됩니다. ( 섹션 11.2 "숫자" 를 참조하십시오.)

  • /

    나누기 :

     mysql> SELECT 3/5;
             -> 0.60
    

    0으로 나누기는 NULL 결과가 생성됩니다.

     mysql> SELECT 102/(1-1);
             -> NULL
    

    결과가 정수로 변환되는 컨텍스트에서 실행되는 경우에만 나누기는 BIGINT 산술을 사용하여 계산됩니다.

  • DIV

    정수 나누기. FLOOR() 과 유사하지만, BIGINT 값도 안전합니다.

    MySQL 5.6에서는 피연산자 중 하나가 정수 이외의 형태 인 경우는 결과가 BIGINT 로 변환되기 전에 피연산자가 DECIMAL 로 변환되고, DECIMAL 산술을 사용하여 나눕니다. 결과가 BIGINT 의 범위를 초과하는 경우 오류가 발생합니다.

     mysql> SELECT 5 DIV 2;
             -> 2
    
  • N % M , N MOD M

    모듈로 연산. M 으로 나눈 N 의 나머지를 반환합니다. 자세한 내용은 섹션 12.6.2 "수학 함수" 의 MOD() 함수에 대한 설명을 참조하십시오.


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved