MySQL的数据类型可大致分为三种:数字,时间,字符串
数字
有符号范围2的bytes*8次方
类型 | 大小(bytes) | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
int | 4 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数 |
tinyint | 1 | (-128,127) | (0,255) | 小整数 |
decimal | 小数(精确的,如货币) |
时间
时间常用时间戳保存,10位长度正好用int
类型 | 大小(bytes) | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
字符串
类型 | 大小(bytes) | 用途 |
---|---|---|
char | 0-255 bytes | 定长字符串 |
varhar | 0-65535 bytes | 变长字符串 |
text | 0-65535 bytes | 长文本数据 |
longtext | 0-4 294 967 295 bytes | 极大文本数据 |
MySQL 5.0 以上的版本:
- 一个汉字占多少长度与编码有关:
UTF-8
:一个汉字=3个字节
GBK
:一个汉字=2个字节 varchar(n)
表示 n 个字符,无论汉字和英文,Mysql 都能存入 n 个字符,仅是实际字节长度有所区别- varchar 类型在 5.0.3 以下的版本中的最大长度限制为 255,而在 5.0.3 及以上的版本中,varchar 数据类型的长度支持到了 65535,也就是说可以存放 65532 个字节(注意是字节而不是字符!!!)的数据(起始位和结束位占去了3个字节)