SQLite字段定义

时间:2012-04-16 11:01:10

标签: sqlite field

我刚开始在SQLite的世界里,正在研究字段定义, 我是否认为SQLite中的Varchar / Chartext字段之间似乎没有区别?设置字段长度也有影响吗?

CompanyName varchar (40) NOT NULL ,

最后,如果我要给布尔字段赋予默认值,我会使用1True作为默认值吗?

1 个答案:

答案 0 :(得分:0)

  

我认为两者之间似乎没有区别   sQLite中的Varchar / Char和文本字段?

是的,你是对的。它们与sqlite完全相同。

  

设置字段长度是否也有影响?

也正确;请注意,没有任何东西阻止上层进行某种形式的检查/执行长度。

  

如果我要给布尔字段赋予默认值,我会使用1或   是默认值吗?

1(或任何非零数值),如下所示:

sqlite> select 1 where True;
Error: no such column: True
sqlite> select 1 where 1;
1
sqlite> select 1 where "True";
sqlite> select 1 where "False";
sqlite> select 1 where 0;
sqlite> select 1 where -1;
1

使用sqlite

备注有关true / false的内容

SQLite用1表示true,用0表示false:

sqlite> select 3 > 2;
1
sqlite> select 3 < 2;
0

SQLite认为真或假的内容更复杂。我只引用documentation

  

将SQL表达式的结果转换为布尔值SQLite   首先将结果以与CAST相同的方式将结果转换为NUMERIC值   表达。 NULL或零值(整数值0或实际值0.0)   被认为是假的。所有其他值都被认为是真实的。

     

例如,值NULL,0.0,0,'english'和'0'都是   被认为是假的。值1,1.0,0.1,-0.1和'1english'是   被认为是真的。