I am looking at the difference about CHAR vs VARCHAR
据说CHAR是固定长度的,而VARCHAR是可变长度的。当我们插入数据时,CHAR字段将具有填充,但是今天我在MYSQL(version5.6.40)中做了一个小测试,我没有发现CHAR字段具有填充
mysql> create table temp(
-> City CHAR(10),
-> Street VARCHAR(10));
select length(city),length(street) from temp;
length(city) | length(street)
| 4 | 6 |
假设长度(城市)应为10?谁可以在这里澄清?
谢谢。
答案 0 :(得分:0)
在读取值时,将透明删除用于存储CHAR
的填充。 SQL Server看到填充,然后“填充了填充;用户不想要填充”,因此也没有将其提供给您。非常聪明。
某些实现使用空字节。其他(iirc Microsoft的T-SQL,尽管这可能只是我的想象)使用0x20
字节。需要注意的重要一点是,所有空间都已用完,无论您是否使用它存储任何数据。如果您的字符串有时长2000000
个字符,但通常长约6
个字符,请使用VARCHAR
。