mysql数据类型
1. 整数类型
MySQL支持在关键字后面的括号内指定整数值的显示宽度(例如,INT(4))。需要注意的是,这个显示宽度跟该数据类型的取值范围、存储空间无关,无论设置成多少,int类型的存储空间都是4字节,signed int的取值范围都是-2147483648 ~ 2147483647。
注意:从8.0.17版本开始,显示宽度已被标记为deprecated,并在将来的版本中完全移除这个功能。
2. 浮点数类型
需要注意的是与整数类型不一样的是,浮点数类型的宽度不会自动扩充。
score double(4,1)--小数部分为1位,总宽度4位,并且不会自动扩充。
3. 字符串类型
CHAR和VARCHAR类型相似,均用于存于较短的字符串,主要的不同之处在于存储方式。CHAR类型长度固定,VARCHAR类型的长度可变。
因为VARCHAR类型能够根据字符串的实际长度来动态改变所占字节的大小,所以在不能明确该字段具体需要多少字符时推荐使用VARCHAR类型,这样可以大大地节约磁盘空间、提高存储效率。
CHAR和VARCHAR表示的是字符的个数,而不是字节的个数。
4. 日期和时间类型
TIMESTEMP类型的数据指定方式与DATETIME基本相同,两者的不同之处在于以下几点:
(1) 数据的取值范围不同,TIMESTEMP类型的取值范围更小。
(2) 如果我们对TIMESTAMP类型的字段没有明确赋值,或是被赋与了NULL值,MySQL会自动将该字段赋值为系统当前的日期与时间。
(3) TIMESTEMP类型还可以使用CURRENT_TIMESTAMP来获取系统当前时间。
(4) TIMESTEMP类型有一个很大的特点,那就是时间是根据时区来显示的。例如,在东八区插入的TIMESTEMP数据为2017-07-11 16:43:25,在东七区显示时,时间部分就变成了15:43:25,在东九区显示时,时间部分就变成了17:43:25。