数据库中的数值数据不存储为文本。我想这取决于数据库,但它当然不必是也不是。
BLOB 的存储方式与您设置它们的方式完全相同——根据定义,数据库无法解释信息——我想如果它发现有用的话,它可能会压缩。BLOB 不会翻译成文本。
以下是 Oracle 存储数字的方式:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/datatype.htm#i16209
内部数字格式
Oracle 数据库以可变长度格式存储数字数据。每个值都以科学计数形式存储,其中 1 个字节用于存储指数,最多 20 个字节用于存储尾数。结果值限制为 38 位精度。Oracle 数据库不存储前导零和尾随零。例如,数字 412 以类似于 4.12 x 102 的格式存储,其中 1 个字节用于存储指数 (2),2 个字节用于存储尾数 (4,1,2) 的三个有效数字。负数在其长度中包含符号。
MySQL信息在这里:
http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html
查看表格 - TINYINT 以 1 个字节(范围 -128 - 127)表示,如果存储为文本则不可能。
编辑:澄清一下——我会说在你的语言中使用看起来像这样的 API(伪代码)
stmt = conn.Prepare("SELECT * FROM TABLE where x in (?, ?, ?)");
stmt.SetInt(0, x);
stmt.SetInt(1, y);
stmt.SetInt(2, z);
我不相信底层协议使用文本来传输参数。