在我的“现实”生活中,我将第一次使用二进制数据类型。我们需要存储某种条形码。
我的高级团队成员告诉我应该使用varbinary
,因为这是文档中的建议(我们使用 Vertica)。
我说好吧,但我的好奇心告诉我“为什么?”
我认为varbinary
或binary
类型会在选择后以不可读的文本打印在屏幕上。但这并没有发生。
所以我在 Vertica 和 SQLite 中进行了测试,他们给了我一个正确的答案。
我创建一个表并插入数据。
create table TEST_VARBINARY_2
(
id int,
va_r binary(5)
);
insert into TEST_VARBINARY_2 (id, va_r)
values (1, '11111')
这就是答案。
显然数据库可以将字符串存储在varbinary
. 所以我的问题是:为什么我们使用char/varchar
而不是varbinary/binary
?
Varbinary/binary
类型可以更有效地存储数据varchar/char
- 那么我们为什么需要varchar/char
?
在讨论这个问题时,您能给我示例或文档链接吗?
UDP 我相信在评论部分我找到了答案。
- 并非所有 RDBMS 都具有二进制类型
- 并非所有 RDBMS 都支持二进制类型的字符串函数