• 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)
  • 1. 데이터 형식 요약
    1. 수치 형의 개요
    2. 날짜 및 시간 형식 개요
    3. 문자열의 개요
    2. 수치형
    3. 날짜와 시간 형
    4. 문자열
    5. 공간 데이터의 확장
    6. 데이터 형 기본값
    7. 데이터 유형의 스토리지 요구 사항
    8. 컬럼에 적절한 형태의 선택
    9. 기타 데이터베이스 엔진의 데이터 형식 사용
  • 12. 함수와 연산자
  • 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 새로운 기능

11.1.1 수치 형의 개요

숫자 데이터 형식의 요약 설명합니다. 숫자의 특성과 스토리지 요구 사항에 대한 자세한 내용은 섹션 11.2 "숫자" 과 섹션 11.7 "데이터 유형의 스토리지 요구 사항" 을 참조하십시오.

M 은 정수의 최대 표시 폭을 보여줍니다. 최대 출력 폭은 255입니다. 섹션 11.2 "숫자" 에서 설명하고있는 바와 같이, 표시 폭은 그 형태에 포함 할 수있는 값의 범위는 관계 없습니다. 부동 소수점과 고정 소수점 형의 경우 M 은 저장 가능한 자리수의 합계입니다.

숫자 컬럼에 대해서 ZEROFILL 을 지정하면, MySQL은 자동으로 그 컬럼에 UNSIGNED 속성을 추가합니다.

UNSIGNED 속성을 허용하는 숫자 데이터 형식은 SIGNED 도 허용합니다. 그러나이 데이터 형식은 기본적으로 부호가 있기 때문에 SIGNED 속성을 지정해도 효과는 없습니다.

SERIAL 는 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE 별칭입니다.

정수 컬럼 정의에서 SERIAL DEFAULT VALUE 는 NOT NULL AUTO_INCREMENT UNIQUE 별칭입니다.

경고

한편이 UNSIGNED 형의 경우 2 개의 정수 값 사이에서 뺄셈을 할 때 NO_UNSIGNED_SUBTRACTION SQL 모드를 사용하지 않으면 결과 값은 부호없이됩니다. 섹션 12.10 「캐스트 함수 및 연산자 " 를 참조하십시오.

  • BIT[( M )]

    비트 필드 형. M 은 값 당 비트 수 (1-64)를 나타냅니다. M 을 생략하면 기본값은 1입니다.

  • TINYINT[( M )] [UNSIGNED] [ZEROFILL]

    아주 작은 정수. 부호있는 범위는 -128 에서 127 입니다. 서명되지 않은 범위는 0 에서 255 입니다.

  • BOOL , BOOLEAN

    이러한 형태는 TINYINT(1) 의 동의어입니다. 0 값은 false로 간주됩니다. 0이 아닌 값은 true로 간주됩니다.

    mysql> SELECT IF(0, 'true', 'false');
    +------------------------+
    | IF(0, 'true', 'false') |
    +------------------------+
    | false                  |
    +------------------------+
    
    mysql> SELECT IF(1, 'true', 'false');
    +------------------------+
    | IF(1, 'true', 'false') |
    +------------------------+
    | true                   |
    +------------------------+
    
    mysql> SELECT IF(2, 'true', 'false');
    +------------------------+
    | IF(2, 'true', 'false') |
    +------------------------+
    | true                   |
    +------------------------+
    

    그러나 여기에 표시된대로 TRUE 값과 FALSE 값은 각각 1 과 0 의 단순한 별칭입니다.

    mysql> SELECT IF(0 = FALSE, 'true', 'false');
    +--------------------------------+
    | IF(0 = FALSE, 'true', 'false') |
    +--------------------------------+
    | true                           |
    +--------------------------------+
    
    mysql> SELECT IF(1 = TRUE, 'true', 'false');
    +-------------------------------+
    | IF(1 = TRUE, 'true', 'false') |
    +-------------------------------+
    | true                          |
    +-------------------------------+
    
    mysql> SELECT IF(2 = TRUE, 'true', 'false');
    +-------------------------------+
    | IF(2 = TRUE, 'true', 'false') |
    +-------------------------------+
    | false                         |
    +-------------------------------+
    
    mysql> SELECT IF(2 = FALSE, 'true', 'false');
    +--------------------------------+
    | IF(2 = FALSE, 'true', 'false') |
    +--------------------------------+
    | false                          |
    +--------------------------------+
    

    마지막 두 문장은 2 가 1 모두 0 도 같지 위해 나타나는 결과를 표시합니다.

  • SMALLINT[( M )] [UNSIGNED] [ZEROFILL]

    작은 정수. 부호있는 범위는 -32768 에서 32767 입니다. 서명되지 않은 범위는 0 에서 65535 입니다.

  • MEDIUMINT[( M )] [UNSIGNED] [ZEROFILL]

    중간 크기의 정수. 부호있는 범위는 -8388608 에서 8388607 입니다. 서명되지 않은 범위는 0 에서 16777215 입니다.

  • INT[( M )] [UNSIGNED] [ZEROFILL]

    보통 크기의 정수. 부호있는 범위는 -2147483648 에서 2147483647 입니다. 서명되지 않은 범위는 0 에서 4294967295 입니다.

  • INTEGER[( M )] [UNSIGNED] [ZEROFILL]

    이 형태는 INT 의 동의어입니다.

  • BIGINT[( M )] [UNSIGNED] [ZEROFILL]

    큰 정수. 부호있는 범위는 -9223372036854775808 에서 9223372036854775807 입니다. 서명되지 않은 범위는 0 에서 18446744073709551615 입니다.

    SERIAL 는 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE 별칭입니다.

    BIGINT 컬럼에 대해주의를 요하는 사항은 다음과 같습니다.

    • 모든 연산은 부호가있는 BIGINT 값 또는 DOUBLE 값을 사용하여 이루어지기 때문에 비트 함수를 사용하지 않는 한, 9223372036854775807 (63 비트)보다 큰 부호없는 정수를 사용하지 마십시오. 그렇게하면 BIGINT 값에서 DOUBLE 값으로 변환시 반올림 오류에 대한 결과 지난 몇 자리에 오차가 발생할 수 있습니다.

      MySQL은 다음의 경우에 BIGINT 를 처리 할 수 있습니다.

      • 부호 없음의 큰 값을 BIGINT 컬럼에 저장하는 정수를 사용할 때.

      • MIN( col_name ) 또는 MAX( col_name ) 에서. 여기에서 col_name 는 BIGINT 컬럼을 말합니다.

      • 연산자 ( + , - , * 등)를 사용하는 경우. 여기에서 두 피연산자는 정수입니다.

    • 문자열을 사용하여 저장하면 언제든지 정확한 정수 값을 BIGINT 컬럼에 저장할 수 있습니다. 이 경우, MySQL은 중간 배정도 표현을 포함하지 않는 문자열에서 숫자로 변환합니다.

    • 두 피연산자가 정수의 경우 - , + , 그리고 * 연산자는 BIGINT 연산을 사용합니다. 이것은 2 개의 큰 정수 (또는 정수를 반환하는 함수의 결과)를 곱하면 그 결과가 9223372036854775807 보다 큰 경우에는 예기치 않은 결과가된다는 것을 의미합니다.

  • DECIMAL[( M [, D ])] [UNSIGNED] [ZEROFILL]

    포장 "정확한"고정 소수점 숫자입니다. M 은 자리수의 합계 (정확도)에서 D 는 소수점 이하 자릿수 (스케일)입니다. 소수점과 음수에 " - "기호는 M 에 포함되지 않습니다. D 가 0이면 소수점과 소수 부분은 없습니다. DECIMAL 의 최대 자리수 ( M )은 65입니다. 지원되는 소수부의 최대 자리수 ( D )는 30입니다. D 가 생략 된 경우 기본값은 0입니다. M 이 생략 된 경우 기본값은 10입니다.

    UNSIGNED 가 지정되어있는 경우, 음수 값은 허용되지 않습니다.

    DECIMAL 컬럼을 사용하는 모든 기본 계산 ( +, -, *, / )는 65 자리의 정밀도로 이루어집니다.

  • DEC[( M [, D ])] [UNSIGNED] [ZEROFILL] , NUMERIC[( M [, D ])] [UNSIGNED] [ZEROFILL] , FIXED[( M [, D ])] [UNSIGNED] [ZEROFILL]

    이러한 형태는 DECIMAL 의 동의어입니다. FIXED 동의어는 다른 데이터베이스 시스템과의 호환성을 위해 사용할 수 있습니다.

  • FLOAT[( M , D )] [UNSIGNED] [ZEROFILL]

    작은 (단정) 부동 소수점 숫자입니다. 허용되는 값은 -3.402823466E+38 에서 -1.175494351E-38 , 0 및 1.175494351E-38 에서 3.402823466E+38 입니다. 이들은 IEEE 표준에 근거한 이론적 인 한계입니다. 사용하는 하드웨어 또는 운영 체제에 따라 실제 범위는 조금 적을 수 있습니다.

    M 은 자리수의 합계에서 D 는 소수점 이하의 자리수입니다. M 과 D 를 생략하면 값은 하드웨어에서 허용 된 한도까지 저장됩니다. 단 정밀도 소수점 숫자는 대략 소수점 7 자리까지 정확합니다.

    UNSIGNED 가 지정되어있는 경우, 음수 값은 허용되지 않습니다.

    MySQL에서는 모든 계산이 배정 밀도로 이루어지고 있기 때문에 FLOAT 를 사용하면 예기치 않은 문제가 발생할 수 있습니다. 섹션 B.5.5.7 "일치하는 행이없는 경우의 문제 해결" 을 참조하십시오.

  • DOUBLE[( M , D )] [UNSIGNED] [ZEROFILL]

    보통 크기 (배정 밀도)의 부동 소수점 숫자입니다. 허용되는 값은 -1.7976931348623157E+308 에서 -2.2250738585072014E-308 , 0 및 2.2250738585072014E-308 에서 1.7976931348623157E+308 입니다. 이들은 IEEE 표준에 근거한 이론적 인 한계입니다. 사용하는 하드웨어 또는 운영 체제에 따라 실제 범위는 조금 적을 수 있습니다.

    M 은 자리수의 합계에서 D 는 소수점 이하의 자리수입니다. M 과 D 를 생략하면 값은 하드웨어에서 허용 된 한도까지 저장됩니다. 배정도 부동 소수는 대략 소수점 이하 15 자리까지 정확합니다.

    UNSIGNED 가 지정되어있는 경우, 음수 값은 허용되지 않습니다.

  • DOUBLE PRECISION[( M , D )] [UNSIGNED] [ZEROFILL] , REAL[( M , D )] [UNSIGNED] [ZEROFILL]

    이러한 유형은 DOUBLE 의 동의어입니다. 예외 : REAL_AS_FLOAT SQL 모드가 유효한 경우는 DOUBLE 대신 REAL 이 FLOAT 의 동의어입니다.

  • FLOAT( p ) [UNSIGNED] [ZEROFILL]

    부동 소수점 숫자입니다. p 는 비트 정밀도를 가리 키지 만, MySQL은 결과 데이터 유형에 대해 FLOAT 또는 DOUBLE 중 어느 것을 사용할지 결정하기 위해서만이 값을 사용합니다. p 가 0에서 24의 때 해당 데이터 유형은 M 값도 D 값도없는 FLOAT 됩니다. p 가 25에서 53을 해당 데이터 유형은 M 값도 D 값도없는 DOUBLE 입니다. 결과가 컬럼의 범위는이 섹션 앞부분 단 정밀도 FLOAT 또는 배정 밀도 DOUBLE 데이터 형의 경우와 동일합니다.

    FLOAT( p ) 구문은 ODBC과의 호환성을 확보하기 위해 준비되어 있습니다.


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