整数
类型 | 大小 | 范围 | 用途 |
---|
tinyint | 1 bytes | -2^7 ~ 2^7 -1 | 小整数值 |
smallint | 2 bytes | -2^15 ~ 2^15 -1 | 较大整数值 |
mediumint | 3 bytes | -2^23 ~ 2^23 -1 | 较大整数值 |
int | 4 bytes | -2^32 ~ 2^32 -1 | 大整数值 |
bigint | 8 bytes | -2^63 ~ 2^63 -1 | 极大整数值 |
语法格式
整型(N) N位数字宽度,可省略
定点数
类型 | 含义 |
---|
decimal(m, d) | 总位数 < m,小数位 = d |
- 数字长度大于m,四舍五入保存;
- 数字小数位位数小于d,用0填充;
定义数据类型为 decimal(5, 2)
100.267 存储为 100.27
100.2 存储为 100.20
10 存储为 10.000
浮点数
类型 | 大小 | 含义 |
---|
float(m, d) | 4 bytes | 单精度浮点数值,8位精度,总位数 < m,小数位 = d |
double(m, d) | 8 bytes | 双精度浮点数值,16位精度,总位数 < m,小数位 = d |
浮点数指定保证最多8位或16位的准确性,其余的数字随机填充
字符串
类型 | 大小 | 用途 |
---|
char | 0-255 byte | 定长字符串 |
varchar | 0-65535 bytes | 变长字符串 |
tinyblob | 0-255 bytes | 不超过 255 个字符的二进制字符串 |
tinytext | 0-255 bytes | 短文本字符串 |
blob | 0-65 535 bytes | 二进制形式的长文本数据 |
text | 0-65 535 bytes | 长文本数据 |
mediumblob | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
mebiumtext | 0-16 777 215 bytes | 中等长度文本数据 |
longblob | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
longtext | 0-4 294 967 295 bytes | 极大文本数据 |
语法格式
字符串类型(N) N表示字符串长度,必填;text不能指定长度
1. char 和 varchar:
- char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉。所以char类型存储的字符串末尾不能有空格,varchar不限于此。
- char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入3个字符将占用4个字节。
- char类型的字符串检索速度要比varchar类型的快。
2. varchar和text:
- varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),text是实际字符数+2个字节。
- text类型不能有默认值。
- varchar可直接创建索引,text创建索引要指定前多少个字符。varchar查询速度快于text,在都创建索引的情况下,text的索引似乎不起作用。
日期
类型 | 大小 | 范围 | 格式 | 用途 |
---|
date | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
time | 3 | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 时间值或持续时间 |
year | 1 | 1901/2155 | YYYY | 年份值 |
datetime | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
timestamp | 4 | 1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
布尔
类型 | 含义 |
---|
boolean | true或false,类型本质是tinyint |
知识总结,交流学习,不当之处敬请指正,谢谢!
参考资料:
[菜鸟教程-MySQL教程]