MySQL
支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例如,INT(4)
)。
显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示。
主键自增:不使用序列,通过auto_increment
,要求是整数类型。
需要注意的是与整数类型不一样的是,浮点数类型的宽度不会自动扩充。
score double(4,1)
–小数部分为1位,总宽度4位,并且不会自动扩充。
CHAR
和VARCHAR
类型相似,均用于存于较短的字符串,主要的不同之处在于存储方式。CHAR
类型长度固定,VARCHAR
类型的长度可变。
因为VARCHAR
类型能够根据字符串的实际长度来动态改变所占字节的大小,所以在不能明确该字段具体需要多少字符时推荐使用VARCHAR
类型,这样可以大大地节约磁盘空间、提高存储效率。
CHAR
和VARCHAR
表示的是字符的个数,而不是字节的个数
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
。