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,增加前先查找一下确保没有设置过)