mysql中数据类型的一些小总结

    首先mysql中最长用的就是int数据类型:

   一. int:有符号值:-2^31到2^31-1。无符号值:2^32-1。占用4个字节。

   1. 首先是经典的int(3)和int(11)的经典问题:

    int(3)只能存储3个长度的数字,int(11)就会存储11个长度的数字,这是绝对不对的。

    举例:12345既可以用int(3)表示也可以用int(11)表示。

    解决:不论int(3)还是int(11)存储的长度都是4字节的。用int(M)为例:int(M)zerofill,但使用zerofill之后。

    int(3)插入的是010,在前面补充了一个0,若int(3)和int(11)都不加zerofill,它们是没有区别的,M不是用来限制这个数  字的长度。

    2.tyinint(1)与tyinint(3)也是同样的道理,关键就是列是否指定了zerofill。其次tyinint只占用1字节

    二.varchar和char

    1.varchar:变长字符串,0-65535字节。

    首先是varchar(M):这里的M是指的是可以存储多少的字节。例如varchar(100)只能存放100字符,无论存放的是数组、字母还是UTF-8汉字(每个汉字3字节),都是存放100个,若存储的字节数超过了M的字节数,将会报错。

    2.char:定长字符串,0-255字节

    3.varchar和char的比较

    char(10)和varchar(10)

    存储123的时候,char(10)剩余的7个字节回用进行自动填充,而varchar(10)只占用3个字节长度,10是最大值。

   

    

猜你喜欢

转载自blog.csdn.net/qq_39597203/article/details/79885617