我对SQLITE相当新,我注意到只有4种数据类型,但我在网上看到人们放入自己数据类型的例子。我真的不明白这一点,并想知道是否有人可以向我解释。例如,我看到一个将保存日期的列,并且给出的数据类型是不存在的时间戳。它默认是什么?当你自己制作文本时,它是否默认为文本?
答案 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
直接回答您的问题:没有默认值。存储类型与存储在数据库中的每个值相关联,而不是与表的列相关联。