sqlite資料庫boolean類型的小小測試

來源:互聯網
上載者:User

   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'); -- 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: 尚未對其進行深入瞭解,目前是實踐測試的結論,純屬猜測,如果有知情者,可告知.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.