sqlite 数据库 boolean类型的小小测试
来源:互联网 发布:河南的网络歌手 编辑:程序博客网 时间:2024/05/19 08:36
根据官方文档的介绍:
SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).
sqlite数据库中没有单独的Boolean存储类,Booean值以0(false)和1(true)来存储.
经我短时间测试的实践, 显示boolean 有三种状态, 0(false) 1(true) 和 null,如下图所示,
经过下列插入语句,测试,均可插入成功.而且, 可以通过
select * from stu where flag ="数据库"
查询到name 为a9 的行.
insert into stu (name,flag) values ('a1','true'); -- 0insert into stu (name,flag) values ('a2','ture'); -- 0insert into stu (name,flag) values ('a3',1); -- 1insert into stu (name,flag) values ('a4','null'); --0 insert into stu (name,flag) values ('a5','1'); --1 insert into stu (name,flag) values ('a6',null); -- nullinsert into stu (name,flag) values ('a7','2'); --1insert into stu (name,flag) values ('a8',15); --1insert into stu (name,flag) values ('a9',"数据库"); --0
导出数据库,可以发现,执行的sql语句是这样的,
insert into [stu] values('a1', 0);insert into [stu] values('a2', 0);insert into [stu] values('a3', 1);insert into [stu] values('a4', 0);insert into [stu] values('a5', 1);insert into [stu] values('a6', null);insert into [stu] values('a7', 1);insert into [stu] values('a8', 1);insert into [stu] values('string', 0);insert into [stu] values('string2', 0);insert into stu (name,flag) values ('a9',0); --0
如此, 猜想, sqlite 是采用了 字符型存储插入的boolean类型数据, 但是,取出的时候, 会将插入的字符型数据转换成int类型来使用.
因此,可以得到下面的结论:
- -- 字符可转换为int类型的为且不为0的为 true, 转换失败或转换后为0的为 false(0)
- -- int ,long double 等数字,0为false, 其他>=1的为 true(1)
- -- 布尔类型报错, null为 null,默认值
ps: 尚未对其进行深入了解,目前是实践测试的结论,纯属猜测,如果有知情者,可告知.
---------2014年4月12日 更新-------
参考T-SQL 中对位数据类型的定义:
“使用位列(bit column)来获得真(true)和假(false)数据类型,或是(yes)和否(no)的数据类型。位列保存 0 或 1。位列接受 0 或 1 之外的整数值,但总是将它解释为 1。位(bit)数据类型的列不能为 NULL,且不能对其进行索引。”
想了解更多,可以参考我转载的这篇文章: 利用 UDF 轻松迁移
- sqlite 数据库 boolean类型的小小测试
- sqlite数据库的类型
- sqlite数据库的类型
- 小小Boolean
- SQLite数据库的INTEGER类型
- Javascript的Boolean类型
- Javascript的Boolean类型
- Sqlite中存储Boolean和boolean对象,分别使用boolean和text类型
- dom4j 的小小测试
- 小小的测试题
- 测试的小小收获
- 测试PHP中的布尔(boolean)类型
- objective-c 中使用了sqlite数据库。字段定义为boolean型的处理方法
- boolean 类型的条件赋值
- php 的布尔类型 boolean
- boolean类型的getter方法
- JavaBean中boolean类型和Boolean类型的get方法
- freemarker的Boolean类型,在JavaScript转成Boolean类型
- HDU 携程编程大赛 1003 携程全球数据中心建设 水题
- java设计模式示例
- 大话数据结构之第一章数据结构绪论总结
- 编程之路能不能走下去
- Android下的动画处理
- sqlite 数据库 boolean类型的小小测试
- C++primer plus第六版课后编程题答案8.5
- 【Burnside引理】疫苗
- Java开发的10位牛人
- (转)十一种通用滤波算法
- 并发无连接服务器----设计思想
- 大话数据结构之第二章算法总结,重点知识,时间复杂度
- RIB表与FIB表、ARB表与FDB表的区别
- 《最后期限》读后感