数値データ型の要約が次に紹介されます。数値型の特性の詳細は、項6.2. 「数値型」を参照してください。必要とする記憶容量は 項6.5. 「データ型のストレージ要件」 に紹介されています。
        M
        は整数型の最大表示幅を示しています。正当な最大表示幅は
        255
        です。項6.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
          モードが有効でないかぎり、結果の値は符号なしになります。項7.9. 「キャスト関数と演算子」
          を参照してください。
        
            ビットフィールド型。M
            は、各値のビット数 (1 から 64)
            を表します。M
            が省略された場合のデフォルトは 1 です。
          
            
            
            TINYINT[(
          M)]
            [UNSIGNED] [ZEROFILL]
            非常に小さい整数。符号付きの範囲は
            -128 から
            127
            です。符号なしの範囲は
            0 から
            255 です。
          
            これらの型は
            TINYINT(1)
            の同義語です。ゼロの値は偽と見なされます。ゼロ以外の値は真と見なされます。
          
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
            つのステートメントは、2
            は、1 とも
            0
            とも等しくないので、表示される結果を表しています。
          
今後リリースされる MySQL の中で、標準 SQL に基づき、ブール型の扱いについて完全にカバーしていく予定です。
            
            
            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
                    カラムに符号なしの大きい値を格納するのに整数を使用するとき。
                  
                    col_name が
                    BIGINT
                    カラムを参照する、MIN(
                    や
                    col_name)MAX(
                    の中
                  col_name)
                    両方のオペランドが整数の場合に、+、-、*
                    などの演算子を利用するとき。
                  
                文字列を利用することで、いつでも正確な整数を
                BIGINT
                カラムに格納できます。この場合 MySQL
                は、中間倍精度表現を含まない、文字列から数値への変換を行います。
              
                両方のオペランドが整数の場合、-、+、そして
                *
                演算子は、BIGINT
                演算を利用します。これは、もし 2
                つの大きい整数を掛け合わした場合、(または整数を返す関数からの結果)、その結果が
                9223372036854775807
                以上のときには、予期しない結果になるということを意味します。
              
            
            
            FLOAT[(
          M,D)]
            [UNSIGNED] [ZEROFILL]
            小さい (単精度) 浮動小数点数。許容値は
            -3.402823466E+38 から
            -1.175494351E-38、0、および
            1.175494351E-38 から
            3.402823466E+38
            です。これらは、IEEE
            スタンダードに基づいた理論的な限界です。利用するハードウェアや
            OS
            によっては、実際の範囲は少し小さくなるかも知れません。
          
            M
            は桁数の合計で、D
            は小数点以下の桁数の合計です。もし
            M と
            D
            が削除された場合、値はハードウェアに許容された限界まで格納されます。単精度小数点数は大体小数第
            7 位まで正確です。
          
            UNSIGNED
            が指定されている場合、負数は許可されません。
          
            MySQL
            ではすべての計算が倍精度で行われているので、FLOAT
            を利用すると、予想外の問題が起きます。Solving Problems with No Matching Rows
            を参照してください。
          
            
            
            
            
            DOUBLE[(
          M,D)]
            [UNSIGNED] [ZEROFILL]
            普通サイズ (倍精度)
            の浮動小数点数。許容値は
            -1.7976931348623157E+308
            から
            -2.2250738585072014E-308、0、および
            2.2250738585072014E-308
            から
            1.7976931348623157E+308
            です。これらは、IEEE
            スタンダードに基づいた理論的な限界です。利用するハードウェアや
            OS
            によっては、実際の範囲は少し小さくなるかも知れません。
          
            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
            データ型のものと同じです。
          
            
            
            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
            同義語はほかのデータベースと互換性があります。
          

