注:mysql中的varchar类型表示字符个数而不是字节数,这点与sqlserver有所区别
数字类型
列类型 | 需要的存储量 | 范围、备注 |
| 1 个字节 |
有符号的范围是-128到127,无符号的范围是0到255 |
| 2 个字节 |
有符号的范围是-32768到32767,无符号的范围是0到65535 |
| 3 个字节 |
有符号的范围是-8388608到8388607,无符号的范围是0到16777215 |
| 4 个字节 |
有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295 即最多可存储10个数字,如果存储手机号(11位)则会失败。 |
| 4 个字节 | INT的一个同义词 |
| 8 个字节 |
有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到18446744073709551615 |
| 4 个字节
| 一个小(单精密)浮点数字。不能无符号。 允许的值是-3.402823466E+38到-1.175494351E-38,0 和 1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24 的一个 参数表示一个单精密浮点数字。 |
| 4 个字节 |
|
| 8 个字节 | 一个正常大小(双精密)浮点数字。不能无符号。 允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。 |
| 8 个字节 |
|
| 8 个字节 | 这些是DOUBLE同义词 |
|
| 一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符 |
|
| 这是DECIMAL的一个同义词 |
日期和时间类型
列类型 | 需要的存储量 | 范围、备注 |
| 3 个字节 | 1000-01-01~9999-12-31 3字节(MySQL3.23版以前是4字节 ) 0000-00-00 |
| 8 个字节 | 1000-01-01 00:00:00~9999-12-31 23:59:59 8字节 0000-00-00 00:00:00 |
| 4 个字节 | 19700101000000~2037年的某个时刻 4字节 00000000000000 |
| 3 个字节 | -838:59:59~838:59:59 3字节 00:00:00 |
| 1 字节 | YEAR(4):1901~2155 YEAR(2):1970~2069 1字节 0000 |
字符串类型
列类型 | 需要的存储量 | 备注 |
|
|
|
|
|
|
|
| 最大长度为255(2^8-1)个字符 |
|
| 最大长度为65535=64K(2^16-1)个字符 |
|
| 最大长度为16777215=16M(2^24-1)个字符 |
|
| 最大长度为4294967295=4G(2^32-1)个字符 |
| 1 或 2 个字节, 取决于枚举值的数目(最大值65535) |
|
| 1,2,3,4或8个字节, 取决于集合成员的数量(最多64个成员) |
|