其中 数字m在不同的数据类型中表示含义是不同的。
整型数系统已经限制了取值范围,比如tinyint占一个字节(8bit)、int占4个字节。
所以整型数后面的m不是表示的数据长度,而是表示数据在显示时显示的最小长度(长度为字符数)。
tinyint(1) 这里的1表示的是最小显示宽度是1个字符。
tinyint(2) 这里的2表示的是最小显示宽度是2字符,但这里光设置m是没有意义的,你还需要指定当数据少于长度m时用什么来填充,比如zerofill(表示有0填充)。
设置tinyint(2) zerofill 你插入1时他会显示01。
设置tinyint(4) zerofill 你插入1时他会显示0001。
是正确的,Boolean类型数据只有两个值true和false,在数据库中1代表true,0代表false,所以Boolean类型字段最大只占一个字节。而tinyint(1)的值可为0~9,包含0和1,也是最大占一个字节,所以数据库的Boolean类型会默认为tinyint(1)类型。 1 bytes = 8 bit ,一个字节最多可以代表的数据长度是2的8次方 11111111 在计算机中也就是
-128到127
1.BIT[M]
位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1
2.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4
很小的整数。带符号的范围是-128到127。无符号的范围是0到255。
3. BOOL,BOOLEAN
是TINYINT(1)的同义词。zero值被视为假。非zero值视为真。
4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6
小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。
5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9
中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。
6. INT[(M)] [UNSIGNED] [ZEROFILL] M默认为11
普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)