数据类型,指的是数据表中的列中支持存放的数据的类型
1.数值类型
在mysql中有多种数据类型可以存放数值,不通的类型存放的数值的范围或形式是不通的。
类型 | 内存空间大小 | 范围 | 说明 |
---|---|---|---|
tinyint | 1byte | 有符号 -128-127无符号 0-255 | 特小型整数(比如年龄) |
smallint | 2byte(16bit) | 有符号 -32768-32767无符号 0-65535 | 小型整数 |
mediumint | 3byte | 有符号 -231-231-1无符号 0-2^32-1 | 中型整数 |
int/integer | 4byte | -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) | 整数 |
bigint | 8byte | -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) | 大型整数 |
float | 4byte | -3.4E38~3.4E38(7个有效位) | 单精度 |
double | 8byte | -1.7E308~1.7E308(15个有效位 | 双精度 |
decimal | 128bit | 8个有效位 | 常用于银行账目计算,DECIMAL(20,2) 指的就是总共能存20位数字,末尾2位是小数(小数点不算在长度内) |
2.字符串类型
类型 | 字符序列长度 | 说明 |
---|---|---|
char | 0-255字节 | 定长字符串,最多可以存储255个字符,当我们制定数据表字段为char(n),此列中国呢的数据最长为n个字符,如果添加的数据少于n,则补’\u0000’至n长度 |
varchar | 0-65536字节 | 可变长度字符串,此类型的类最多长度为65535| |
tinyblob | 0-255字节 | 存储二进制字符串 |
blob | 0-65535 | 存储二进制字符串 |
mediumblob | 0-1677215 | 存储二进制字符串 |
longblob | 0-4294967295 | 存储二进制字符串 |
text | 0-255 | 文本数据(字符串) |
text | 0-1677215 | 文本数据(字符串) |
longtext | 0-4294967295 | 文本数据(字符串),当varchart存不下去使用 |
3.日期类型–(用于时间字段进行查询)
类型 | 格式 | 说明 |
---|---|---|
date | 2022-08-08 | 日期,只存储年月日 |
time | 16:36:12 | 时间,只存错时分秒 |
year | 2022 | 年份 |
datetime | 2022-08-08 16:36:12 | 日期+时间,存储年月日时分秒 |
timestamp | 20220808 163612 | 日期+时间(时间戳) |