Mysqlがサポートするデータ型

4313 ワード

MySQL        ,      3 :    、            (  )  。               ,              ,                    。      ,                       ,              。 

 MySQL          。           : 

M 
         。            255 。 
D 
                           。       30,       M-2。 
   (“[” “]”)             。 

  ,         ZEROFILL,MySQL         UNSIGNED  。 

TINYINT[(M)] [UNSIGNED] [ZEROFILL] 
       。       -128 127,       0 255。 


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。  ,           BIGINT DOUBLE   ,          9223372036854775807(63 )       ,     !  ,      INTEGER  ,-、+ *   BIGINT  !        2    (           ),      9223372036854775807,          。      ,       ,         ,      <=24,         ,  25  53  ,     FLOAT DOUBLE         。FLOAT(X)    FLOAT DOUBLE     ,                。 MySQL3.23 ,          。    MySQL   ,FLOAT(precision)   2   。     ODBC      。 

FLOAT[(M,D)] [ZEROFILL] 
   (   )    。     。     -3.402823466E+38 -1.175494351E-38,0  1.175494351E-38 3.402823466E+38。M      D      。     FLOAT  <24                 。 

DOUBLE[(M,D)] [ZEROFILL] 
      (   )    。     。     -1.7976931348623157E+308 -2.2250738585072014E-308、 0 2.2250738585072014E-308 1.7976931348623157E+308。M      D     。       DOUBLE FLOAT(X)(25 < = X < = 53)           。 

DOUBLE PRECISION[(M,D)] [ZEROFILL] 


REAL[(M,D)] [ZEROFILL] 
   DOUBLE   。 

DECIMAL[(M[,D])] [ZEROFILL] 
     (unpack)     。     。      CHAR :“   ”               ,           。   ,      ,“-”    M   。  D 0,            。DECIMAL       DOUBLE  ,        DECIMAL ,         M D      。  D   ,     0。  M   ,     10。  , MySQL3.22 ,M          。 

NUMERIC(M,D) [ZEROFILL] 
  DECIMAL      。 

DATE 
    。      '1000-01-01' '9999-12-31'。MySQL 'YYYY-MM-DD'     DATE ,                 DATE 。 

DATETIME 
         。      '1000-01-01 00:00:00' '9999-12-31 23:59:59'。MySQL 'YYYY-MM-DD HH:MM:SS'     DATETIME ,                 DATETIME  。 

TIMESTAMP[(M)] 
      。   '1970-01-01 00:00:00' 2037    。MySQL YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD YYMMDD     TIMESTAMP ,     M 14(   )、12、8 6,                 TIMESTAMP 。  TIMESTAMP       INSERT UPDATE            ,            ,                  。           NULL             。 
TIME 
    。   '-838:59:59' '838:59:59'。MySQL 'HH:MM:SS'     TIME ,                 TIME 。 

YEAR[(2|4)] 
  2 4       (   4 )。     1901 2155, 0000(4    ),     2 ,1970-2069( 70-69)。MySQL YYYY     YEAR ,                 YEAR 。(YEAR   MySQL3.22     。) 

CHAR(M) [BINARY] 
       ,    ,                。M    1 ~ 255   。      ,       。CHAR                       ,    BINARY   。NATIONAL CHAR(   NCHAR) ANSI SQL      CHAR          。  MySQL   。CHAR CHARACTER     。 

[NATIONAL] VARCHAR(M) [BINARY] 
       。  :      ,        (    ANSI SQL  )。M    1 ~ 255   。 VARCHAR                       ,    BINARY    。 VARCHAR CHARACTER VARYING    。 

TINYBLOB 

TINYTEXT 
  BLOB TEXT ,     255(2^8-1)   。 
BLOB 


TEXT 
  BLOB TEXT ,     65535(2^16-1)   。 

MEDIUMBLOB 

MEDIUMTEXT 
  BLOB TEXT ,     16777215(2^24-1)   。 
LONGBLOB 

LONGTEXT 
  BLOB TEXT ,     4294967295(2^32-1)   。 

ENUM('value1','value2',...) 
  。             ,          'value1'、'value2', ..., NULL。  ENUM    65535    。 

SET('value1','value2',...) 
    。                ,           'value1', 'value2', ...  。  SET    64   。 

参考資料:http://hi.baidu.com/iamcay