SQLITE自定义数据类型?

时间:2011-12-07 14:47:59

标签: sql types sqlite

我对SQLITE相当新,我注意到只有4种数据类型,但我在网上看到人们放入自己数据类型的例子。我真的不明白这一点,并想知道是否有人可以向我解释。例如,我看到一个将保存日期的列,并且给出的数据类型是不存在的时间戳。它默认是什么?当你自己制作文本时,它是否默认为文本?

1 个答案:

答案 0 :(得分:14)

sqlite3使用动态类型系统。只有五个存储类: NULL,整数,实数,文本和blob。 (来源:Datatypes In SQLite Version 3。)

并引用该页面:

  

SQLite版本3数据库中的任何列(INTEGER PRIMARY KEY列除外)都可用于存储任何存储类的值。

除了integer primary key例外,SQLite根本不强制执行类型。这意味着您在create table中输入的类型名称纯属信息。

create table mytab (a apples, b bananas);

是有效的create table语句。您可以在两列中插入时间戳,文本,blob(不是说应该,但你可以)。

有关详细信息,请查看类型系统的链接参考文档。

sqlite> create table mytab (a apples, b bananas);
sqlite> insert into mytab values (CURRENT_TIME, NULL);
sqlite> insert into mytab values ('hello', 3.14159);
sqlite> select * from mytab;
14:59:18|
hello|3.14159

直接回答您的问题:没有默认值。存储类型与存储在数据库中的每个值相关联,而不是与表的列相关联。