SQLite 內(nèi)存數(shù)據(jù)庫(kù)學(xué)習(xí)手冊(cè)
一、內(nèi)存數(shù)據(jù)庫(kù):
在SQLite中,數(shù)據(jù)庫(kù)通常是存儲(chǔ)在磁盤(pán)文件中的。然而在有些情況下,我們可以讓數(shù)據(jù)庫(kù)始終駐留在內(nèi)存中。最常用的一種方式是在調(diào)用sqlite3_open()的時(shí)候,數(shù)據(jù)庫(kù)文件名參數(shù)傳遞":memory:",如:
rc = sqlite3_open(":memory:", &db);
在調(diào)用完以上函數(shù)后,不會(huì)有任何磁盤(pán)文件被生成,取而代之的是,一個(gè)新的數(shù)據(jù)庫(kù)在純內(nèi)存中被成功創(chuàng)建了。由于沒(méi)有持久化,該數(shù)據(jù)庫(kù)在當(dāng)前數(shù)據(jù)庫(kù)連接被關(guān)閉后就會(huì)立刻消失。需要注意的是,盡管多個(gè)數(shù)據(jù)庫(kù)連接都可以通過(guò)上面的方法創(chuàng)建內(nèi)存數(shù)據(jù)庫(kù),然而它們卻是不同的數(shù)據(jù)庫(kù),相互之間沒(méi)有任何關(guān)系。事實(shí)上,我們也可以通過(guò)Attach命令將內(nèi)存數(shù)據(jù)庫(kù)像其他普通數(shù)據(jù)庫(kù)一樣,附加到當(dāng)前的連接中,如:
ATTACH DATABASE ':memory:' AS aux1;
二、臨時(shí)數(shù)據(jù)庫(kù):
在調(diào)用sqlite3_open()函數(shù)或執(zhí)行ATTACH命令時(shí),如果數(shù)據(jù)庫(kù)文件參數(shù)傳的是空字符串,那么一個(gè)新的臨時(shí)文件將被創(chuàng)建作為臨時(shí)數(shù)據(jù)庫(kù)的底層文件,如:
rc = sqlite3_open("", &db);
或
ATTACH DATABASE '' AS aux2;
和內(nèi)存數(shù)據(jù)庫(kù)非常相似,兩個(gè)數(shù)據(jù)庫(kù)連接創(chuàng)建的臨時(shí)數(shù)據(jù)庫(kù)也是各自獨(dú)立的,在連接關(guān)閉后,臨時(shí)數(shù)據(jù)庫(kù)將自動(dòng)消失,其底層文件也將被自動(dòng)刪除。
盡管磁盤(pán)文件被創(chuàng)建用于存儲(chǔ)臨時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息,但是實(shí)際上臨時(shí)數(shù)據(jù)庫(kù)也會(huì)和內(nèi)存數(shù)據(jù)庫(kù)一樣通常駐留在內(nèi)存中,唯一不同的是,當(dāng)臨時(shí)數(shù)據(jù)庫(kù)中數(shù)據(jù)量過(guò)大時(shí),SQLite為了保證有更多的內(nèi)存可用于其它操作,因此會(huì)將臨時(shí)數(shù)據(jù)庫(kù)中的部分?jǐn)?shù)據(jù)寫(xiě)到磁盤(pán)文件中,而內(nèi)存數(shù)據(jù)庫(kù)則始終會(huì)將數(shù)據(jù)存放在內(nèi)存中。
- SQLite3 API 編程手冊(cè)
- SQLite 錯(cuò)誤碼整理
- SQLite學(xué)習(xí)手冊(cè)(SQLite在線備份)
- SQLite3 命令行操作指南
- 為SQLite3提供一個(gè)ANSI到UTF8的互轉(zhuǎn)函數(shù)
- SQLite 入門(mén)教程四 增刪改查 有講究
- SQLite 入門(mén)教程三 好多約束 Constraints
- SQLite 入門(mén)教程二 SQLite的創(chuàng)建、修改、刪除表
- SQLite 入門(mén)教程一 基本控制臺(tái)(終端)命令
- Linux sqlite3 基本命令
- Android使用SQLite數(shù)據(jù)庫(kù)的簡(jiǎn)單實(shí)例
- android中sqlite的按條件查找的小例子
- 基于sqlite特殊字符轉(zhuǎn)義的實(shí)現(xiàn)方法
- 解析SQLite中的常見(jiàn)問(wèn)題與總結(jié)詳解
- 淺談SQLite時(shí)間函數(shù)的使用說(shuō)明與總結(jié)分析
- 深入SQLite基本操作的總結(jié)詳解
- Android畫(huà)圖并保存圖片的具體實(shí)現(xiàn)代碼
- android創(chuàng)建數(shù)據(jù)庫(kù)(SQLite)保存圖片示例
相關(guān)文章
SQLite學(xué)習(xí)手冊(cè)(SQLite在線備份)
在SQLite中提供了一組用于在線數(shù)據(jù)庫(kù)備份的APIs函數(shù)(C接口),可以很好的解決上述方法存在的不足。通過(guò)該組函數(shù),可以將源數(shù)據(jù)庫(kù)中的內(nèi)容拷貝到另一個(gè)數(shù)據(jù)庫(kù),同時(shí)覆蓋目標(biāo)數(shù)據(jù)庫(kù)中的數(shù)據(jù)2013-12-12為SQLite3提供一個(gè)ANSI到UTF8的互轉(zhuǎn)函數(shù)
這篇文章主要為大家分享下ANSI與UTF8的互轉(zhuǎn)函數(shù),需要的朋友可以收藏下2013-12-12SQLite教程(十三):C語(yǔ)言編程實(shí)例代碼(1)
這篇文章主要介紹了SQLite教程(十三):C語(yǔ)言編程實(shí)例代碼(1),本文講解了獲取表的Schema信息、動(dòng)態(tài)創(chuàng)建表、刪除該表、常規(guī)數(shù)據(jù)插入、創(chuàng)建測(cè)試數(shù)據(jù)表、刪除測(cè)試表等內(nèi)容,需要的朋友可以參考下2015-05-05Win11下基于VS2022編譯SQLite3源碼的實(shí)現(xiàn)步驟
本文主要介紹了Win11下基于VS2022編譯SQLite3源碼的實(shí)現(xiàn)步驟,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09sqlite3 top的查詢(xún)及l(fā)imit語(yǔ)法介紹
sqlite3中沒(méi)有top的語(yǔ)法結(jié)構(gòu),不過(guò)相關(guān)的語(yǔ)法能實(shí)現(xiàn)跟top語(yǔ)法相同的功能,感興趣的你可以參考下,希望可以幫助到你2013-02-02VScode第三方插件打開(kāi)sqlite數(shù)據(jù)庫(kù)圖文教程
在實(shí)際做一個(gè)項(xiàng)目的時(shí)候,為了提高效率我們會(huì)首選不重復(fù)造輪子,所以可能會(huì)用到第三方庫(kù),下面這篇文章主要給大家介紹了關(guān)于VScode第三方插件打開(kāi)sqlite數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06sqlite循環(huán)批量插入數(shù)據(jù)采用批處理文件實(shí)現(xiàn)
需要在sqlite數(shù)據(jù)庫(kù)中插入大量測(cè)試數(shù)據(jù),需要通過(guò)一個(gè)批處理文件來(lái)循環(huán)調(diào)用插入sqlite語(yǔ)句,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04