• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            SQLite的類型親和性分析

            一、類型親和性介紹

            SQLite不強(qiáng)制數(shù)據(jù)類型約束。任何數(shù)據(jù)都可以插入任何列。你可以向一個(gè)整型列中插入任意長(zhǎng)度的字符串,向布爾型列中插入浮點(diǎn)數(shù),或者向字符型列中插入日期型值。在 Create TABLE 中所指定的數(shù)據(jù)類型不會(huì)限制在該列中插入任何數(shù)據(jù)。任何列均可接受任意長(zhǎng)度的字符串(只有一種情況除外:標(biāo)志為INTEGER PRIMARY KEY的列只能存儲(chǔ)64位整數(shù), 當(dāng)向這種列中插數(shù)據(jù)除整數(shù)以外的數(shù)據(jù)時(shí),將會(huì)產(chǎn)生錯(cuò)誤。)但SQLite確實(shí)使用聲明的列類型來指示你所期望的格式。所以,例如你向一個(gè)整型列中插入字符串時(shí),SQLite會(huì)試圖將該字符串轉(zhuǎn)換成一個(gè)整數(shù)。如果可以轉(zhuǎn)換,它將插入該整數(shù);否則,將插入字符串。這是一個(gè)特性,而不是一個(gè)bug。這種特性被稱為類型或列親和性(type or column affinity).

             

            二、類型親和性總結(jié)(優(yōu)點(diǎn))

            1           提高和其它DBMS的兼容性,讓用戶就像是在用一般的DBMS一樣而使用它,提高了容錯(cuò)能力。

            2           SQLite支持的數(shù)據(jù)類型只有五種,而其它的大型DBMS支持的數(shù)據(jù)類型有幾十種,那么如果要將其它的數(shù)據(jù)轉(zhuǎn)換成SQLite下的數(shù)據(jù)就根本不能實(shí)現(xiàn),所以就將它的數(shù)據(jù)類型設(shè)計(jì)為親和性的,數(shù)據(jù)類型種類少了系統(tǒng)實(shí)現(xiàn)會(huì)簡(jiǎn)單很多,整個(gè)系統(tǒng)也就不會(huì)太龐大,因?yàn)槿绻刑嗟臄?shù)據(jù)類型限制的話,本身系統(tǒng)在實(shí)現(xiàn)方面也會(huì)困難些。然而,雖然它支持的類型雖然只有五種,可是實(shí)際上任何類型都支持了,這就是SQLite數(shù)據(jù)類型親和性的巧妙之處。由此我個(gè)人認(rèn)為這也就是將數(shù)據(jù)類型設(shè)計(jì)成為親和性的初衷。

            3           在插入數(shù)據(jù)的時(shí)候只要做一些檢查和轉(zhuǎn)換即可,實(shí)現(xiàn)容易

             

            三、數(shù)據(jù)類型親和性(缺點(diǎn))

            1.         在對(duì)表中數(shù)據(jù)進(jìn)行統(tǒng)計(jì)方面如果有不一致的數(shù)據(jù)存在則運(yùn)算比較混亂,其實(shí)也就是放寬政策為的是讓更多人去維護(hù)。不過它自己是有處理方法的,如果在運(yùn)算時(shí)出現(xiàn)不同類型的數(shù)據(jù)時(shí)就忽略不計(jì)等(我認(rèn)為這點(diǎn)也是很牽強(qiáng),因?yàn)槿绻^就會(huì)得到一些不合乎人期望的結(jié)果,但我認(rèn)為一般情況下,對(duì)于一列數(shù)據(jù)來說,基本上會(huì)是一致的,因?yàn)槿绻诤艽蟪绦蛏喜灰恢碌脑捑蜎]什么意義的)

            2.         還有在數(shù)據(jù)比較方面也存在同樣的問題,不過也有相應(yīng)的補(bǔ)救措施,自己規(guī)定了比較準(zhǔn)則:

            a)         一個(gè)具有空存儲(chǔ)類型的值被認(rèn)為小于任何值(包括另外一個(gè)具有空存儲(chǔ)類型的值)。

            b)        一個(gè)整數(shù)值或?qū)崝?shù)值小于任何文本值和BLOB值。 當(dāng)一個(gè)整數(shù)或?qū)崝?shù)和另一個(gè)整數(shù)或?qū)崝?shù)相比較的時(shí)候,則按照實(shí)際數(shù)值來比較。

            c)        一個(gè)文本值小于BLOB值。當(dāng)兩個(gè)文本值相比較的時(shí)候,則用C語言類庫(kù)中的memcmp()函數(shù)來比較。然而,有時(shí)候也不是這樣的,比如在下面所描述的“用戶定義的整理順序”情況下。

            d)        當(dāng)兩個(gè)BLOB文本被比較的時(shí)候,結(jié)果決定于memcmp()函數(shù)。

             

            posted on 2009-06-20 03:17 肥仔 閱讀(214) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)庫(kù)

            亚洲国产香蕉人人爽成AV片久久 | 少妇久久久久久久久久| 国产一区二区三精品久久久无广告| 97久久超碰国产精品旧版| 久久99国产精品尤物| 国产精品一区二区久久精品| 久久福利青草精品资源站免费| 亚洲AV无一区二区三区久久| 亚洲性久久久影院| 亚洲午夜无码AV毛片久久| 久久久亚洲AV波多野结衣| 久久亚洲AV成人无码软件| 久久青青草原亚洲av无码app| 久久青青草原综合伊人| 日本精品久久久久影院日本| 欧美大香线蕉线伊人久久| 久久久精品日本一区二区三区| 一本色道久久99一综合| 久久精品国产亚洲7777| 久久综合给合综合久久| 精品亚洲综合久久中文字幕| 久久国产精品-久久精品| 99久久国产主播综合精品| 少妇久久久久久被弄高潮| 精品无码久久久久久尤物| 国产99久久精品一区二区| 国产高清国内精品福利99久久| 一本色道久久88精品综合| 久久免费的精品国产V∧| 青青青青久久精品国产h| 久久精品亚洲精品国产欧美| 久久99九九国产免费看小说| 午夜精品久久久久久久| 一本一道久久精品综合| 午夜精品久久久久久| 久久99国产综合精品免费| 国产—久久香蕉国产线看观看| 亚洲午夜精品久久久久久浪潮| 国产精品禁18久久久夂久 | 狠狠久久综合| 国产偷久久久精品专区|