程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> sqlite數據庫boolean類型的小小測試

sqlite數據庫boolean類型的小小測試

編輯:關於SqlServer

       sqlite數據庫中沒有沒有獨的Boolean存儲類,,Booean值以整數0(false)和1(true)存儲, 經我段時間的實踐, boolean 有三種狀態, 0(false) 1(true) 和 null,如下圖所示,

    sqlite數據庫boolean類型的小小測試    三聯

      經過下列插入語句,測試,均可插入成功.而且, 可以通過

      select * from stu where flag ="數據庫"

      查詢到name 為a9 的行.

      insert into stu (name,flag) values ('a1','true'); -- 0

      insert into stu (name,flag) values ('a2','ture'); -- 0

      insert into stu (name,flag) values ('a3',1); -- 1

      insert 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); -- 2

      insert into stu (name,flag) values ('a7','2'); --1

      insert into stu (name,flag) values ('a8',15); --1

      insert 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類型的為 ture, 轉換失敗的為 false(0) ,int ,long double 等整形為 ture(1) , 布爾類型報錯, null為 null

      ps: 尚未對其進行深入了解,目前是實踐測試的結論,純屬猜測,如果有知情者,可告知.

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved