mysql学习四之mysql的字符类型学习,包含char类型和varchar类型,enum枚举类型,set集合类型,text类型及其兄弟类型。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33322074/article/details/86532164

一、字符串类型都有哪些

二、首先是char类型和varchar类型

char的M表示固定长度,适用于学号,身份证号,电话号码等固定的数字序列。

不管存储几个都要占用M个字符。而Varchar的M是所能允许的最大值,varchar的字节是可变的。

上图证明了M是字符数,但是总长度仍是字节来表示。因为utf8字符占3个字节。gbk占2个字节。21845*3=65535

32767*2=65534

三、出现一个问题

即:varchar类型的字节长度65535,那么问题来了,我们可不可以存储一个字段该字段的长度为65535呢?

答案是不可以的。那可不可以存储一个字节长度为65534呢?也是不可以的。那么可不可以存储一个字节为65533呢?也是有原因的。

为什么?因为

注意:如果所有字段中有一个是可以为null,那么就要消耗一个字节去记录。

只有都为not null时才不需要浪费一个字节。

四、text类型及其兄弟类型

1、text类型其实和varchar类型差不多。

不同点是:定义时,通常不用指定长度,可以自己计算。tinyText占1个字节,text占2个字节,mediumText占3个字节。longtext占4个字节。

五、enum类型:所谓enum类型是枚举类型

所谓枚举类型,就是有多个选项,但是只能选一个。比如男女选项,你只能选择一个。枚举共占2个字节,即有65535个选项量。

而这些在数据库中存储时是以数字来存储的。内部是数字运算

存储其他的内容就会报错,也可以存储1,2等数字。例如:

六、set集合类型

set集合类型是:给出有多个选项可以都选也可以都不选。就好比一个人可以有多个爱好,也可以有1个爱好。set集合占8个字节,总共有64个选项。不过set集合在mysql中的运算是位运算。

猜你喜欢

转载自blog.csdn.net/qq_33322074/article/details/86532164
今日推荐