SQLite-数据类型

作者:vkvi 来源:ITPOW(原创) 日期:2013-6-12

初学 SQLite,很多人都会对数据类型有疑问:bool、boolean;int、integer;nvarchar、nvarchar2……到底有啥区别?

其实我们大可不必把 SQLite 想复杂了

第二版将全部数据都存储为 ASCII 文本格式,第三版,才有点区别:

  • 这个值为空值。
  • 整数 值被标识为整数,依据值的大小可以依次被存储为 1,2,3,4,5,6,7,8。
  • 实数 所有值都是浮动的数值,被存储为 8 字节的 IEEE 浮动标记序号。
  • 文本 值为文本字符串,使用数据库编码存储 (TUTF-8, UTF-16BE or UTF-16-LE)。
  • BLOB 值是 BLOB 数据,如何输入就如何存储,不改变格式。

其实你不用想那么多格式,你就把它们都当作相同的就可以了。

甚至,你还可以更自由

请看:在 SQLite3.0 版中,值被定义为什么类型只和值自身有关,和列没有关系,和变量也没有关系。有点像弱类型。

也就是说:即使你定义的是 INT 类型,你也可以存储字符串;即使你定义的是 10 个长度,你也可以存储超过 10 个长度。

不信?

看看英文原版吧:http://www.sqlite.org/datatype3.html

相关文章