2.MySQL中的五种数据类型
MySQL的五种数据类型
整数类型
有五种整数类型,最常用的是tinyint、int:
数据类型中的m表示的是显示长度,不是存储长度,只有字段指定zerofill时有用
例如:int(3),实际值是2,在数据库存储为2,如果列指定为zerofill,查询结果显示002
| 整数类型 | 含义(有符号) |
|---|---|
| tinyint(m) | 1个字节,范围(-128~127) |
| smallint(m) | 2个字节,范围(-32768~32767) |
| mediumint(m) | 3个字节,范围(-8388608~8388607) |
| int(m) | 4个字节, |
| bigint(m) | 8个字节 |
浮点数类型
有两种浮点数类型:
m:显示的总位数;d:小数的位数;整数部分现实的位数:m-d
| 浮点类型 | 含义 |
|---|---|
| float(m,d) | 单精度浮点类型,4个字节 |
| double(m,d) | 双精度浮点类型,8个字节 |
字符类型
有六种字符类型,常用char、varchar和text:
| 字符类型 | 含义 |
|---|---|
| char(n) | 固定长度,最多255个字符 |
| varcahr(n) | 可变长度,最多65535个字符,n表示最大长度 |
| text | 可变长度,最多65535个字符,无需指定长度 |
| tinytext | 可变长度,最多255个字符 |
| mediumtext | 可变长度,最多2的24次方-1个字符 |
| longtext | 可变长度,最多2的32次方-1个字符 |
char、varchar和text:
- char长度固定,适合用于像电话号码、身份证号等的使用
- varchar可变长度,可以设置最大长度,适用于长度可变的属性
- text可变长度,当不知道属性的最大长度时,使用text
查询速度:char最快,varchar次之,text最慢
日期类型
有四种日期类型:
| 日期类型 | 含义 |
|---|---|
| date | 显示“年-月-日” |
| time | 显示“时:分:秒” |
| datetime | 显示“年-月-日 时:分:秒” |
| timestamp | 时间戳,适用于跨时区存储和展示 |
二进制类型(BLOB)
- BLOB和TEXT存储方式不同,TEXT以文本存储,英文存储区分大小写;BLOB以二进制方式存储,不区分大小写
- BLOB存储的数据只能整体读出
- TEXT可以指定字符集,BLOB不用指定字符集
| 数据类型 | 说明 |
|---|---|
| tinyblob | 最大255B |
| blob | 最大65K |
| mediumblob | 最大16M |
| longblob | 最大4G |
Windows、linux基本一样通过修改文件my.ini或my.cnf文件,在文件中增加 max_allowed_packet=10M(就是最大10M,mysql默认似乎1MB,增加前先查找一下确保没有设置过)

浙公网安备 33010602011771号