MySQL数据库列的类型—字符串类型CHAR和VARCHAR类型

1.CHAR类型和VARCHAR类型

CHAR类型和VARCHAR类型在创建表时指定了最大长度,其基本形式如下:

字符串类型(M)

其中,“字符串类型”参数指定了数据类型为CHAR类型还是VARCHAR类型;M参数指定了该字符串的最大长度为M。例如,CHAR(4)就是数据类型为CHAR类型,其最大长度为4。

CHAR类型的长度是固定的,在创建表时就指定了。其长度可以是0~255的任意值。例如,CHAR(100)就是指定CHAR类型的长度为100。CHAR存储值时,它们会用空格由填充到指定长度。

VARCHAR类型的长度是可变的,在创建表时指定了最大长度。定义时,其最大值可以取0~65535之间的任意值。指定VARCHAR类型的最大值以后,其长度可以在0到最大长度之间。例如,VARCHAR(100)的最大长度是100,但不是每条记录都要占用100个字节,而是在这个最大值范围内使用多少就分配多少。VARCHAR类型实际占用的空间为字符串的实际长度加1或2,这样既可有效节约系统时间。

CHAR(4)

存储字节数

VARCHAR(4)

存储字节数

‘’

‘’

4

‘’

1

‘ab’

ab

4

ab

3

abcd

abcd

4

abcd

5

abcdefgh

-

#插入失败

-

#插入失败

例如插入值‘abcd’CHAR和VACHAR存储的区别:

其中varchar的第一个元素数值是具体的大小。

首先我们创建一个表test1。

 正常插入数据‘12345’并显示

 之后插入一组有空格的数据为e_char和v_char都插入‘1 2 ’。

 虽然现在看起来是没有区别的,但实际上是有区别的char类型会屏蔽后面隐藏的空格,varchar不会屏蔽,因此e_char的值为‘1 2’,v_char的值为‘1 2 ’。

我们可以用concat函数连接括号让char后面屏蔽的空格原形毕露

 2.实战建议:

①、char一定会使用指定的空间,varchar是根据数据来定空间。

②、char的数据查询效率比varchar高,varchar是需要通过后面的记录数来计算。

③、如果确定数据一定是占指定长度,那么使用char类型。

④、如果不确定数据到底有多少,那么使用varchar类型。

⑤、如果数据长度超过255个字符而在65535之内,直接使用varchar

⑥、如果字符串尾部要保留空格,必须选择varchar。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长天一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值