MySQL 常用数据类型解析

以下内容从官网里都能找到,地址

1.整数类型(精确值)

    包括TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT类型。

    每个类型都有一个数值范围,超过这个范围,将存储这个范围里的最大值。

    详细内容请看下表。

   

类型 存储(Byte) 最小值(Signed/Unsigned) 最大值(Signed/Unsigned)
TINYINT 1 -128 / 0 127 / 255
SMALLINT 2 -32768 / 0 32767 / 65535
MEDIUMINT 3 -8388608 / 0 8388607 / 16777215
INT 4 -2147483648 / 0 2147483647 / 4294967295
BIGINT 8 -9223372036854775808 / 0 9223372036854775807 / 18446744073709551615

2.精准浮点数类型(精确值)

    DECIMAL 和 NUMERIC 存储精准的数值,此类型被用在对数值精准要求很高的地方,比如货币数据。

    DECIMAL(m,n),m表示位数,n表示小数部分。

    比如:DECIMAL(5,2)表示的范围是-999.99 至 999.99

3.浮点数类型(近似值)

    FLOAT 和 DOUBLE 类型表示近似的数字数值,在MySQL数据库里FLOAT占用4个字节,DOUBLE占用8个字节。

    如果要插入999.00009到FLOAT(7,4)字段,那么近似值的结果是999.0001。

4.日期时间类型

    请看表格内容

   

类型 存储(Byte) 表示范围 其他说明
DATETIME 8 '1000-01-01 00:00:00' 至 '9999-12-31 23:59:59' 包含日期和时间部分
TIMESTAMP 4 '1970-01-01 00:00:01' UTC 至 '2038-01-19 03:14:07' UTC 包含日期和时间部分
DATE 3 '1000-01-01' 至 '9999-12-31' 只有日期部分,没有时间部分
TIME 3 '-838:59:59' 至 '838:59:59' 它不仅仅表示一天的时间,还表示两个事件之间的时间间隔(可能大于24小时)
YEAR 1 YEAR(4)表示 1901 至 2155
YEAR(2)表示 1970 至 2070
 

5.字符串类型

    此类型包含 CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM 和 SET

    CHAR,表示存储字符固定长度,范围:0至255,如果字符长度小于指定长度,会在存储字符的右边补空格,

        比如CHAR(30),表示指定存储字符长度为30,如果存储了小于30的字符,那么会在右边补空格。

   VARCHAR,表示存储可变长度的字符,范围:0至65535,

        它会用1个字节,或者2个字节来表示存储字符的长度,存储字符长度小于255,就用1个字节,大于255,就用2个字节.

    详细内容如下:

Value CHAR(4) Storage Required VARCHAR(4) Storage Required
'' ' ' 4 bytes '' 1 byte
'ab' 'ab ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd' 5 bytes
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes
 

    BINARY 和 VARBINARY 跟 CHAR 和 VARCHAR相似,除此之外,它们用来存储二进制字符串。

    BLOB 存储大的二进制对象,包括 TINYBLOB, MEDIUMBLOB, BLOB 和 LONGBLOB类型.

    TEXT 存储大文本字符,包括 TINYTEXT, MEDIUMTEXT, TEXT 和 LONGTEXT类型.



你可能感兴趣的:(mysql,数据类型)