qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          sqlite數(shù)據(jù)庫(kù) boolean類型的小小測(cè)試

           根據(jù)官方文檔的介紹:
            SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).
            sqlite數(shù)據(jù)庫(kù)中沒(méi)有單獨(dú)的Boolean存儲(chǔ)類,Booean值以0(false)和1(true)來(lái)存儲(chǔ).
            經(jīng)我短時(shí)間測(cè)試的實(shí)踐, 顯示boolean 有三種狀態(tài), 0(false)  1(true)  和 null,如下圖所示,
            經(jīng)過(guò)下列插入語(yǔ)句,測(cè)試,均可插入成功.而且, 可以通過(guò)
            select * from stu where flag  ="數(shù)據(jù)庫(kù)"
            查詢到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); -- null
          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',"數(shù)據(jù)庫(kù)"); --0
            導(dǎo)出數(shù)據(jù)庫(kù),可以發(fā)現(xiàn),執(zhí)行的sql語(yǔ)句是這樣的,
          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 是采用了 字符型存儲(chǔ)插入的boolean類型數(shù)據(jù), 但是,取出的時(shí)候, 會(huì)將插入的字符型數(shù)據(jù)轉(zhuǎn)換成int類型來(lái)使用.
            因此,可以得到下面的結(jié)論:
            -- 字符可轉(zhuǎn)換為int類型的為且不為0的為 true, 轉(zhuǎn)換失敗或轉(zhuǎn)換后為0的為 false(0)
            -- int ,long double 等數(shù)字,0為false, 其他>=1的為 true(1)
            -- 布爾類型報(bào)錯(cuò), null為 null,默認(rèn)值
            ps:尚未對(duì)其進(jìn)行深入了解,目前是實(shí)踐測(cè)試的結(jié)論,純屬猜測(cè),如果有知情者,可告知.

          posted on 2014-04-17 10:49 順其自然EVO 閱讀(265) 評(píng)論(0)  編輯  收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄

          <2014年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 临颍县| 邢台市| 铅山县| 池州市| 西乌珠穆沁旗| 和政县| 辉南县| 元阳县| 肥东县| 宁强县| 福贡县| 利津县| 沭阳县| 浦城县| 甘洛县| 治多县| 南华县| 襄城县| 海安县| 抚宁县| 壶关县| 长阳| 洛浦县| 利津县| 宁武县| 田林县| 巫山县| 鹿邑县| 馆陶县| 绍兴市| 珠海市| 准格尔旗| 丰顺县| 云林县| 静安区| 上思县| 长白| 德令哈市| 清徐县| 台安县| 原平市|