西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)西西教程數(shù)據(jù)庫(kù)教程 → SQLite內(nèi)存數(shù)據(jù)庫(kù)

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

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來(lái)源:本站整理時(shí)間:2010/9/14 18:20:34字體大小:A-A+

作者:佚名點(diǎn)擊:1461次評(píng)論:0次標(biāo)簽: SQLite 數(shù)據(jù)庫(kù)

  • 類型:文件處理大。1.5M語(yǔ)言:中文 評(píng)分:3.1
  • 標(biāo)簽:
立即下載

SQLite 介紹
一. SQLite 是實(shí)現(xiàn)了SQL 92標(biāo)準(zhǔn)的一個(gè)大子集的嵌入式數(shù)據(jù)庫(kù).其以在一個(gè)庫(kù)中組合了數(shù)據(jù)庫(kù)引擎和接口,能將所有數(shù)據(jù)存儲(chǔ)于單個(gè)文件中而著名.我覺(jué)得SQLite的功能一定程度上居于MySQL 和PostgreSQL之間.盡管如此,在性能上面,SQLite常常快2-3倍 (甚至更多).這利益于其高度調(diào)整了的內(nèi)部架構(gòu),因?yàn)樗チ朔⻊?wù)器端到客戶端和客戶端到服務(wù)器端的通信。

二. 而令人印象深刻的特點(diǎn)是你可將你的整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)放在其中.利用非常高效的內(nèi)存組織,SQLite只需在很小的內(nèi)存中維護(hù)其很小的尺寸,遠(yuǎn)遠(yuǎn)比其它任何數(shù)據(jù)庫(kù)系統(tǒng)都小.這些特點(diǎn)使得其成為在需要高效地應(yīng)用數(shù)據(jù)庫(kù)的任務(wù)中一個(gè)非常方便的工具.

SQLite 優(yōu)勢(shì)
一 . 除了速度和效率,SQLite還有其它好多的優(yōu)勢(shì)使得其能成為許多任務(wù)中一個(gè)理想的解決方案.因?yàn)镾QLite的數(shù)據(jù)庫(kù)都是簡(jiǎn)單文件,因此無(wú)須一個(gè)管理隊(duì)伍花時(shí)間來(lái)構(gòu)造復(fù)雜的權(quán)限結(jié)構(gòu)來(lái)保護(hù)用戶的數(shù)據(jù)庫(kù).因?yàn)闄?quán)限通過(guò)文件系統(tǒng)自動(dòng)進(jìn)行.這也同時(shí)意味著(數(shù)據(jù)庫(kù)空間的大小只與環(huán)境有關(guān),與本身無(wú)關(guān))無(wú)段特殊的規(guī)則來(lái)了解用戶磁盤(pán)空間.用戶可以從創(chuàng)建他們想要的任意多的數(shù)據(jù)庫(kù)和對(duì)其對(duì)這些數(shù)據(jù)庫(kù)的絕對(duì)控制權(quán)而得到好處.

二 . 數(shù)據(jù)庫(kù)就是一個(gè)文件的事實(shí)使用SQLite可以輕易地在服務(wù)器間移動(dòng).SQLite也除去了需要大量?jī)?nèi)存和其它系統(tǒng)資源的伺候進(jìn)程.即使當(dāng)數(shù)據(jù)庫(kù)在大量地使用時(shí)也是如此.

創(chuàng)建內(nèi)存數(shù)據(jù)庫(kù)

1.由于業(yè)務(wù)的需要,我使用SQLite 內(nèi)存數(shù)據(jù)庫(kù)制作一個(gè)緩存,IIS 停止內(nèi)存數(shù)據(jù)庫(kù)的數(shù)據(jù)全部丟失,不知道SQLite 是否可以做分布式的內(nèi)存數(shù)據(jù)管理。

2.添加System.Data.SqlClient引用,程序集請(qǐng)到這里http://sqlite.phxsoftware.com/ 下載

3.創(chuàng)建內(nèi)存數(shù)據(jù)庫(kù) , Data Source=:memory:;Version=3; 這個(gè)連接字符串折騰了很久, 當(dāng)然這里也可以使用文件來(lái)存儲(chǔ)數(shù)據(jù),只需要修改 Data Source=:memory: 為 Data Source= Cache.db 就ok !當(dāng)然這個(gè)表需要在Global 里面創(chuàng)建

 代碼
SQLiteConnection conn = (SQLiteConnection)new SQLiteConnection("Data Source=:memory:;Version=3; Cache Size = 3000;New=True;Pooling=False;Max Pool Size=100;LongNames = 0; Timeout = 1000; NoTXN = 0; SyncPragma = NORMAL; StepAPI = 0");
conn.Open();
IDbCommand dbcmd = conn.CreateCommand();
//創(chuàng)建內(nèi)存表
string sql = "CREATE TABLE [AvTable] ( [ID] INTEGER PRIMARY KEY NOT NULL,[CityPair] VARCHAR(6) NULL,[FlightNo] VARCHAR(50) NULL,[FlightDate] VARCHAR(10) NULL,[CacheTime] VARCHAR(2000) NULL,[AVNote] VARCHAR(2000) NULL)";
dbcmd.CommandText = sql;
dbcmd.Connection = conn;
dbcmd.ExecuteNonQuery();
SQLiteConn = conn;
 

全局屬性,打開(kāi)數(shù)據(jù)庫(kù)連接后創(chuàng)建好表后賦值給這個(gè)屬性,以后操作數(shù)據(jù)一致使用這個(gè)連接。

public static SQLiteConnection SQLiteConn { get; set; }
使用SQL 語(yǔ)句操作表如下, sql 是代表sql 語(yǔ)句

string sql = "Update AVTable Set CityPair='" + av.CityPair + "',CacheTime='" + DateTime.Now.ToString() + "',AVNote='" + av.AVNote + "' Where FlightNo='" + av.FlightNo + "' And FlightDate='" + av.FlightDate + "'";
IDbCommand dbcmd = MemoryDatabse.SQLiteConn.CreateCommand();
dbcmd.CommandText = sql;
dbcmd.Connection = MemoryDatabse.SQLiteConn;
int count = dbcmd.ExecuteNonQuery(); 

SQLite 的查詢語(yǔ)法 和 SQL SERVER 有一些區(qū)別 。

提取 avcache表 11-20 的數(shù)據(jù) 。

Select * From avcache Limit 9 Offset 10; 以上語(yǔ)句表示從avcache 表獲取數(shù)據(jù),跳過(guò)10行,取9行 。

另外一種寫(xiě)法, 從10 開(kāi)始提取 提取9條數(shù)據(jù) 。

select * from avcache limit10,9

語(yǔ)法

sql = "select * from avcache where "+條件+" order by "+排序+" limit "+要顯示多少條記錄+" offset "+跳過(guò)多少條記錄;

例子

select * from avcache limit 15 offset 20 意思是說(shuō): 從avcache 表跳過(guò)20條記錄選出15條記錄

由于最近工作需要開(kāi)始學(xué)習(xí)SQLite ,寫(xiě)的難免有些粗糙的地方,希望大家指正,提供更好的方法!

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門(mén)評(píng)論

    最新評(píng)論

    第 1 樓 北京開(kāi)心網(wǎng) 網(wǎng)友 客人 發(fā)表于: 2011/6/9 15:04:32
    http://www.innovatechautomation.com/skin/fac/5.gif

    支持( 0 ) 蓋樓(回復(fù))

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)