偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQLite數(shù)據(jù)庫的類型親和性分析

數(shù)據(jù)庫 其他數(shù)據(jù)庫
介紹SQLite數(shù)據(jù)庫的類型約束,并由此帶出SQLite類型親和性的介紹。通過細(xì)致比較,得出SQLite數(shù)據(jù)庫類型親和性的有點(diǎn)與缺點(diǎn)。

一、類型親和性介紹

SQLite不強(qiáng)制數(shù)據(jù)類型約束。任何數(shù)據(jù)都可以插入任何列。你可以向一個(gè)整型列中插入任意長度的字符串,向布爾型列中插入浮點(diǎn)數(shù),或者向字符型列中插入日期型值。在 Create TABLE 中所指定的數(shù)據(jù)類型不會(huì)限制在該列中插入任何數(shù)據(jù)。任何列均可接受任意長度的字符串(只有一種情況除外:標(biāo)志為INTEGER PRIMARY KEY的列只能存儲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ì)簡單很多,整個(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、在對表中數(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)為一般情況下,對于一列數(shù)據(jù)來說,基本上會(huì)是一致的,因?yàn)槿绻诤艽蟪绦蛏喜灰恢碌脑捑蜎]什么意義的)。

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

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

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語言類庫中的memcmp()函數(shù)來比較。然而,有時(shí)候也不是這樣的,比如在下面所描述的“用戶定義的整理順序”情況下。

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

SQLite數(shù)據(jù)庫

SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如Tcl、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。

【編輯推薦】

  1. 簡評MySQL和PostgreSQL優(yōu)劣
  2. 在ACCESS中調(diào)用后臺存儲過程
  3. 細(xì)化解析PostgreSQL的昨天今天和明天
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2021-04-29 00:20:21

Python親和性分析

2024-01-16 09:35:00

數(shù)據(jù)庫應(yīng)用

2024-03-05 10:34:33

KubernetesPod云原生

2013-01-28 15:17:51

Windows Ser虛擬機(jī)

2011-07-20 12:34:49

SQLite數(shù)據(jù)庫約束

2019-08-15 07:00:54

SQLite數(shù)據(jù)庫內(nèi)存數(shù)據(jù)庫

2017-03-15 15:14:03

MySQL數(shù)據(jù)庫高可用性

2017-07-12 09:20:42

SQLite數(shù)據(jù)庫移植

2011-08-24 13:49:45

Access數(shù)據(jù)庫轉(zhuǎn)化

2013-04-01 10:49:51

iOS開發(fā)sqlite數(shù)據(jù)庫

2011-08-02 16:16:08

iPhone開發(fā) SQLite 數(shù)據(jù)庫

2011-08-04 18:00:47

SQLite數(shù)據(jù)庫批量數(shù)據(jù)

2023-09-27 22:33:40

KubernetesK8S

2024-10-28 16:31:03

2023-09-24 22:47:42

Kubernetes親和性

2011-07-12 15:22:04

SQLite數(shù)據(jù)庫

2013-03-27 09:47:01

Android開發(fā)SQAndroid SDK

2011-03-25 13:34:20

SQLite數(shù)據(jù)庫

2011-07-05 10:16:16

Qt 數(shù)據(jù)庫 SQLite

2011-07-01 14:06:57

Qt sqlite
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號