mysql的数据类型
mysql的数据类型
数值类型
MySQL中支持多种数值类型,其实很大程度上是相同的,只是存储值的大小范围不同而已。
类型 | 说明 |
---|---|
tinyint | 占用1个字节,相对于java中的byte |
smallint | 占用2个字节,相对于java中的short |
int | 占用4个字节,相对于java中的int |
bigint | 占用8个字节,相对于java中的long |
float | 4字节单精度浮点类型,相对于java中的float |
double | 8字节双精度浮点类型,相对于java中的double |
字符串类型
类型 | 说明 |
---|---|
char(n) | 定长字符串,最长255个字符。n表示字符数. 所谓的定长,是当插入的数据的长度小于指定的长度时,剩余的空间会用空格填充。(这样会浪费空间) 优点: 存储速度快, 高效 缺点: 长度有限制, 如果长度设计不合理或浪费空间 |
varchar(n) | 变长字符串,最长不超过65535个字节,n表示字符数,一般超过255个字符,会使用text类型, 优点: 节省省空间 缺点: 存储速度比char慢 |
text | 最长65535个字节,一般超过255个字符列的会使用text。另,text也分多种,其中bigtext存储数据的长度约为4GB。 |
日期类型
类型 | 说明 |
---|---|
date | 年月日 |
time | 时分秒 |
datetime | 年月日 时分秒 |
timestamp | 时间戳(实际存储的是一个时间毫秒值),与datetime存储日期格式相同。 |
timestamp和datetime的区别:
- timestamp最大表示2038年,而datetime范围是1000年~9999年
- timestamp在插入数据、修改数据时,可以自动更新成系统当前时间(后面用到时再做讲解)