【IT168 技术文档】
2. MySQL的列(字段)类型
数据库中的每个表都是由一个或多个列(字段)构成的。在用CREATE TABLE语句创建一个表时,要为每列(字段)指定一个类型。列(字段)的类型比数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。
2.1数值列类型
MySQL有整数和浮点数值的列类型,如表1所示。整数列类型可以有符号也可无符号。有一种特殊的属性允许整数列值自动生成,这对需要唯一序列或标识号的应用系统来说是非常有用的。
类型 |
说明 |
TINYINT | 非常小的整数 |
SMALLINT | 较小整数 |
MEDIUMINT | 中等大小整数 |
INT | 标准整数 |
BIGINT | 较大整数 |
FLOAT | 单精度浮点数 |
DOUBLE | 双精度浮点数 |
DECIMAL | 一个串的浮点数 |
表1:数值列类型
每种数值类型的名称和取值范围如表2所示。
类型说明 |
取值范围 |
TINYINT[(M)] | 有符号值:-128 到127(- 27 到27 - 1) 无符号值:0到255(0 到28 - 1) |
SMALLINT[(M)] | 有符号值:-32768 到32767(- 215 到215 - 1) 无符号值:0到65535(0 到21 6 - 1) |
MEDIUMINT[(M)] | 有符号值:-8388608 到8388607(- 22 3 到22 3 - 1 ) 无符号值:0到16777215(0 到22 4 - 1) |
INT[(M)] | 有符号值:-2147683648 到2147683647(- 231 到231- 1) 无符号值:0到4294967295(0 到232 - 1) |
BIGINT[(M)] | 有符号值:-9223372036854775808 到9223373036854775807(- 263到263-1) 无符号值:0到18446744073709551615(0到264 – 1) |
FLOAT[(M, D)] | 最小非零值:±1.175494351E - 38 |
DOUBLE[(M,D)] | 最小非零值:±2.2250738585072014E - 308 |
DECIMAL (M, D) | 可变;其值的范围依赖于M 和D |
表2:数值列类型的取值范围
各种类型值所需的存储量如表3所示。
类型说明 |
存储需求 |
TINYINT[(M)] | 1字节 |
SMALLINT[(M)] | 2字节 |
MEDIUMINT[(M)] | 3字节 |
INT[(M)] | 4字节 |
BIGINT[(M)] | 8字节 |
FLOAT[(M, D)] | 4字节 |
DOUBLE[(M, D)] | 8字节 |
DECIMAL (M, D) | M字节(MySQL < 3.23),M+2字节(MySQL > 3.23 ) |
表3:数值列类型的存储需求