DATABASE

    mysql
    숫자형 데이터 타입
    • 조회수 8,284
    • 작성일 2008-08-03
    •  
    숫자형 데이터 타입


    숫자형은 가장 기본적인 자료형으로서 말 그래도 숫자들을 저장하는 자료형입다.
    숫자형의 기본적인 자료형은 정수형과 소수형 두가지로 나눌수있다.
    정수형의 자료는 SIGNED 와 UNSIGNED 로 나눌수있다
    SINGED는 부호를 가질수있는 수를 나타내고, UNSINGED는 부호가 없는 수를 나타낸다.

    SIGNED - 음수,양수 모두 저장 가능
    UNSIGNED - 양수만 저장 가능

    * 종류 및 설명

    ------------------------------------------------------------------------------------
    [자료형] [다룰수있는 범위] [저장에 필요한 BYTE 수]
    ------------------------------------------------------------------------------------
    TINYINT SIGNED : -128 ~ 127 1 BYTE
    UNSINGED : 0 ~ 255
    ------------------------------------------------------------------------------------
    SMALLINT SIGNED : -32768 ~ 32767 2 BYTE
    UNSIGNED : 0 ~ 65535
    ------------------------------------------------------------------------------------
    MEDIUMINT SIGNED : -8388608 ~ 8388607 3 BYTE
    UNSIGNED : 0 ~ 16777215
    ------------------------------------------------------------------------------------
    INT SINGED : -2147483648 ~ 2147483647 4 BYTE
    UNSIGNED : 0 ~ 4294967295
    ------------------------------------------------------------------------------------
    INTEGER INT 와 동일
    ------------------------------------------------------------------------------------
    BIGINT SINGED : -9223372036854775808 ~
    9223372036854775807
    UNSIGNED : 0 ~ 18446744073709551615 8 BYTE
    ------------------------------------------------------------------------------------
    FLOAT 최소값 : +-1.175494351E-38
    최대값 : +-3.402823466E+38 4 BYTE
    ------------------------------------------------------------------------------------
    BOUBLE 최소값 : +-2.2250738585072014E-308
    최대값 : +-1.17976931348623157E+308 8 BYTE
    ------------------------------------------------------------------------------------
    DOUBLE PRECISION DOUBLE 동일 8 BYTE
    ------------------------------------------------------------------------------------
    REAL DOUBLE 동일 8 BYTE
    ------------------------------------------------------------------------------------
    DECIMAL DOUBLE 동일 경우에따라
    ------------------------------------------------------------------------------------


    * UNSIGNED 사용방법

    mysql> create table kkk(
    -> num tinyint,
    -> count tinyint unsigned
    -> );
    Query OK, 0 rows affected (0.00 sec)

    mysql> desc kkk;
    +-------+---------------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-------+---------------------+------+-----+---------+-------+
    | num | tinyint(4) | YES | | NULL | |
    | count | tinyint(3) unsigned | YES | | NULL | |
    +-------+---------------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)


    * AUTO_INCREMENT / ZEROFILL 이라는 속성하용하기

    mysql> create table zzz (
    ->
    -> num int(10) not null auto_increment,
    -> count int zerofill,
    -> primary key(num)
    -> );
    Query OK, 0 rows affected (0.00 sec)

    mysql> desc zzz;
    +-------+---------------------------+------+-----+---------+----------------+
    | Field | Type | Null | Key | Default | Extra |
    +-------+---------------------------+------+-----+---------+----------------+
    | num | int(10) | | PRI | NULL | auto_increment |
    | count | int(10) unsigned zerofill | YES | | NULL | |
    +-------+---------------------------+------+-----+---------+----------------+
    2 rows in set (0.00 sec)


    mysql> insert into zzz values ('55','55');
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from zzz;
    +-----+------------+
    | num | count |
    +-----+------------+
    | 55 | 0000000055 |
    +-----+------------+
    1 row in set (0.00 sec)

    ZEROFILL 로 정의된 필드에 값이 어떻게 입력되는지 확인하면 이 정의의 필요성을 알수
    있을거라 생각됩니다.