MySQL数据类型

MySQL中的数据类型大致可以分为三类:数值、日期/时间和字符串(字符)类型。

1、数值类型

 

类型 大小 范围(有符号) 范围(无符号) 用途
TINYINT 1字节 (-128, 127) (0, 255) 小整数值
SMALLINT 2字节 (-32 768, 32 767) (0, 65 535) 大整数值
MEDIUMINT 3字节 (-8 388 608, 8 388 607) (0, 16 777 215) 大整数值
INT或INTEGER 4字节 (-2 147 483 648, 2 147 483 647) (0, 4 294 967 295) 大整数值
BIGINT 8字节 (-9 233 372 036 854 775 808,
9 223 372 036 854 775 807)
(0, 18 446 744 073 709 551 615) 极大整数值
FLOAT 4字节 (-3.402 823 466 E+38,
1.175 494 351 E-38),
0,
(1.175 494 351 E-38,
3.402 823 466 351 E+38)
0,
(1.175 494 351 E-38, 3.402 823 466 E+38)
单精度
浮点数值
DOUBLE 8字节 (1.797 693 134 862 315 7 E+308,
2.225 073 858 507 201 4 E-308),
0,
(2.225 073 858 507 201 4 E-308,
1.797 693 134 862 315 7 E+308)
0,
(2.225 073 858 507 201 4 E-308,
1.797 693 134 862 315 7 E+308)
双精度
浮点数值
DECIMAL 对DECIMAL(M,D)
如果M>D
为M+2否则为D+2
依赖于M和D的值 依赖于M和D的值 小数值

























2、字符串类型

 

类型
大小 用途
CHAR
0-255字节
定长字符串
VARCHAR
0-255字节
变长字符串
TINYBLOB
0-255字节
不超过255个字符的二进制字符串
TINYTEXT
0-255字节
短文本字符串
BLOB
0-65 535字节
二进制形式的长文本数据
TEXT
0-65 535字节
长文本数据
MEDIUMBLOB
0-16 777 215字节
二进制形式的中等长度文本数据
MEDIUMTEXT
0-16 777 215字节
中等长度文本数据
LOGNGBLOB
0-4 294 967 295字节
二进制形式的极大文本数据
LONGTEXT
0-4 294 967 295字节
极大文本数据

 

CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。

BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。

也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。

BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。

有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。

3、日期和时间类型

每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

 

类型
大小(字节) 范围 格式 用途
DATE
3 1000-01-01/9999-12-31
YYYY-MM-DD
日期值
TIME
3 '-838:59:59'/'838:59:59'
HH:MM:SS
时间值或持续时间
YEAR
1 1901/2155
YYYY
年份值
DATETIME
8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS
混合日期和时间值
TIMESTAMP
8 1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS
混合日期和时间值,时间戳

你可能感兴趣的:(mysql)