MySQL 文本存值的类型区别

1.char长度固定,varchar和text长度可变。(char可能存在空间浪费,字符串长度不够,则后面用空格补足空字符串)

2.char和varchar可以设定默认值,text没有默认值。

3.char和varchar定义时要指定长度,text定义时通常不用指定长度,可以自己计算。

 

varchar

varchar类型长度范围65535,实际范围为65532或65533。为什么?

    varchar存储字符串的同时会在内容开头用1到2个字节保存该字符串的实际长度(小于255采用一个字节保存,长

度超过255时需要2个字节),还有如果存在not null的时候,整条记录需要一个额外的字节来保存当前字段的null

值,也会占用一位。除非所有的字段都不是null,这个字节才可以省略。因此varchar定义的最大长度为65535,实际

长度为65532或65533.


varchar最大长度是65535字节,因此对不同的字符集,有效长度还不一样。

字符类型若为gbk, 每个字符最多占2个字节,最大长度不能超过32767;

字符类型若为utf8,每个字符最多占3个字节,最大长度不能超过21845。

text

text的65535字节全部用来存储数据,使用额外的2个字节来存储数据的大小,varchar根据存储数据的大小选择用几个字节来存储

 

数据的检索效率是:char>varchar>text

MySQL中有多种文本格式的字段类型,包括CHAR、VARCHAR、TINYTEXTTEXT、MEDIUMTEXT、LONGTEXT、ENUM和SET等类型[^1][^2]。 1. CHAR类型:用于存储固定长度的字符串,最多可以存储255个字符。例如,定义一个CHAR(10)类型的字段,可以存储10个字符的字符串,如果存储的字符串长度小于10,则会在后面补空格。 2. VARCHAR类型:用于存储可变长度的字符串,最多可以存储65535个字符。例如,定义一个VARCHAR(20)类型的字段,可以存储20个字符的字符串,如果存储的字符串长度小于20,则不会补空格。 3. TINYTEXT类型:用于存储最大长度为255个字符的文本数据。 4. TEXT类型:用于存储最大长度为65535个字符的文本数据。 5. MEDIUMTEXT类型:用于存储最大长度为16777215个字符的文本数据。 6. LONGTEXT类型:用于存储最大长度为4294967295个字符的文本数据。 7. ENUM类型:用于存储枚举值,可以从预定义的值列表中选择一个值进行存储。 8. SET类型:用于存储一个或多个预定义的值,可以选择多个值进行存储。 下面是一个示例,演示如何在MySQL中创建一个包含不同文本格式字段类型的表: ```sql CREATE TABLE my_table ( char_column CHAR(10), varchar_column VARCHAR(20), tinytext_column TINYTEXT, text_column TEXT, mediumtext_column MEDIUMTEXT, longtext_column LONGTEXT, enum_column ENUM('value1', 'value2', 'value3'), set_column SET('value1', 'value2', 'value3') ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值