目录
1. 关于tinyint
1.1 tinyint(1) 与tinyint(4)的区别
tinyint默认的位数是4位,但是我们设计数据库就算设计成tinyint(1),也不能影响它占了4个存储空间。
tinyint(1) 和 tinyint(4)中的1和4只有字段指定zerofill是有用,用0来填充,而且需要去指定zerofill才行。
其实他们的存储空间是一样的。
如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。
1.2 tinyint用java的什么类型来接收?
tinyint 可以使用int来接受也可以用boolean来接受。
因为数据库并没有boolean这个类型,所以用tinyint来代替,用来表示0 或者 1
2. int家族~
2.1 smallint
6位
2.2 mediumint
9位
2.3 int
11位
有符号:[- 2^31 , 2^31-1]
无符号: [ 0,2^32-1]
2.4 BIGINT
20位
3. char与varchar
char是一种固定长度的类型,varchar则是一种可变长度的类型
char如果存的长度不够位数,会在右边用空格补齐。
在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).
面试会问到,varchar是包含了一个记录长度的字节的。
1、在一个数据表里,如果每一个数据列的长度都是固定的,那么每一个数据行的长度也将是固定的.
2、只要数据表里有一个数据列的长度的可变的,那么各数据行的长度都是可变的.
3、如果某个数据表里的数据行的长度是可变的,那么,为了节约存储空间,MySQL会把这个数据表里的固定长度类型的数据列转换为相应的可变长度类型.