思考:mysql数据类型后括号中数字的含义,如int(5),char(7)

疑惑点:

疑惑1: 括号中的数字指的是字节还是字符?

疑惑2: 什么是字节,什么是字符?

解惑:

对于疑惑1:

       解答:括号中的数字指的是字符。比如,num int(5)就是指字段num在显示时能显示的最小长度是5,而不是指数据长度是5。通俗的说就是,在显示时能显示的最短字符个数是5个,再通俗一点的说,就是你想让字段num在显示时显示5个长度的字符数。而mysql的int默认最长显示11位(其中,数字占10位,符号位占1位) 。

要说明的是:类似int的数值类型是在字符前面补0,而类似char的字符类型是在字符后面补空格

举个栗子:

对于表test_player,由于开始没有设置zerofill,当alter table为zerofill后,如下所示:

思考:mysql数据类型后括号中数字的含义,如int(5),char(7)
test_player

 

思考:mysql数据类型后括号中数字的含义,如int(5),char(7)
set zerofill前后变化

 

思考:mysql数据类型后括号中数字的含义,如int(5),char(7)
最大长度验证

 

思考:mysql数据类型后括号中数字的含义,如int(5),char(7)
最大长度验证

 

 由此,可验证字段age int(3)中3的含义,即在显示时能显示的最小长度是3。

栗子毕。

对于疑惑2:

字节:一种存储单位,是计算机技术的一种计量存储容量的计量单位,如在mysql中,int占4个字节,tinyint占1个字节。

字符:如‘a’,‘1’,‘我’,‘~’等就是字符,字符充满了我们的生活。