gpt4 book ai didi

mysql - 为什么 CHAR 在 MySQL 中没有填充

转载 作者:行者123 更新时间:2023-11-29 16:37:25 26 4
gpt4 key购买 nike

I am looking at the difference about CHAR vs VARCHAR

据说CHAR是定长的,VARCHAR是变长的。当我们插入数据时,CHAR字段会有padding,但是今天我在MYSQL(version5.6.40)中做了一个小测试,我没有发现CHAR字段有padding

mysql> create table temp(
-> City CHAR(10),
-> Street VARCHAR(10));

select length(city),length(street) from temp;

length(city) | length(street)
| 4 | 6 |

假设长度(城市)应该为 10?谁能在这里澄清一下?

谢谢。

最佳答案

当您读取值时,用于存储 CHAR 的填充会被透明地删除。 SQL Server 看到填充后会说“这就是填充;用户不想要这样”,因此不会将其提供给您。非常聪明。

一些实现使用空字节。其他的(iirc Microsoft 的 T-SQL,尽管这可能只是我的想象)使用 0x20 字节。需要注意的是,所有空间都已用完,无论您是否使用它来存储任何数据。如果您的字符串有时为 2000000 个字符长,但通常约为 6 个字符长,请使用 VARCHAR

关于mysql - 为什么 CHAR 在 MySQL 中没有填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53528645/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com