国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

asp.net下SQLite(輕量級最佳數據庫) 原理分析和開發應用

2024-07-10 13:24:58
字體:
來源:轉載
供稿:網友

概述

SQLite介紹

自幾十年前出現的商業應用程序以來,數據庫就成為軟件應用程序的主要組成部分。正與數據庫管理系統非常關鍵一樣,它們也變得非常龐大,并占用了相當多的系統資源,增加了管理的復雜性。隨著軟件應用程序逐漸模塊模塊化,一種新型數據庫會比大型復雜的傳統數據庫管理系統更適應。嵌入式數據庫直接在應用程序進程中運行,提供了零配置(zero-configuration)運行模式,并且資源占用非常少。
SQLite是一個開源的嵌入式關系數據庫,它在2000年由D. Richard Hipp發布,它的減少應用程序管理數據的開銷,SQLite可移植性好,很容易使用,很小,高效而且可靠。
SQLite嵌入到使用它的應用程序中,它們共用相同的進程空間,而不是單獨的一個進程。從外部看,它并不像一個RDBMS,但在進程內部,它卻是完整的,自包含的數據庫引擎。

嵌入式數據庫的一大好處就是在你的程序內部不需要網絡配置,也不需要管理。因為客戶端和服務器在同一進程空間運行。SQLite 的數據庫權限只依賴于文件系統,沒有用戶帳戶的概念。SQLite 有數據庫級鎖定,沒有網絡服務器。它需要的內存,其它開銷很小,適合用于嵌入式設備。你需要做的僅僅是把它正確的編譯到你的程序。

架構(architecture)

SQLite采用了模塊的設計,它由三個子系統,包括8個獨立的模塊構成。

 

asp.net下SQLite(輕量級最佳數據庫) 原理分析和開發應用

關于這個圖有以下幾點值得注意:
A、一個事務可以在UNLOCKED,RESERVED或EXCLUSIVE三種狀態下開始。默認情況下在UNLOCKED時開始。
B、白色框中的UNLOCKED, PENDING, SHARED和 RESERVED可以在一個數據庫的同一時存在。
C、從灰色的PENDING開始,事情就變得嚴格起來,意味著事務想得到排斥鎖(EXCLUSIVE)(注意與白色框中的區別)。
雖然鎖有這么多狀態,但是從體質上來說,只有兩種情況:讀事務和寫事務。

 

讀者可以從下載SQLite 3.3.4的版本
Cmd 進入命令行


    創建數據庫文件:
   >SQLite3 d:/test.db 回車
   就生成了一個test.db在d盤。
   這樣同時也SQLite3掛上了這個test.db

   用.help可以看看有什么命令
   >.help 回車即可

   看看有創建了多少表
   >.tables


   看表結構
   >.schema 表名


  看看目前掛的數據庫
   >.database


   如果要把查詢輸出到文件
   >.output 文件名
   > 查詢語句;


   把查詢結果用屏幕輸出
   >.output stdout

   把表結構輸出,同時索引也會輸出
    > .dump 表名
   退出
   >.exit 或者.quit

 

從下載Ado.net驅動。
   下載了安裝,在安裝目錄中存在System.Data.SQLite.dll
    我們只需要拷貝這個文件到引用目錄,并添加引用即可對SQLite數據庫操作了
   所有的Ado.net對象都是以SQLite開頭的,比如SQLiteConnection
   連接串只需要如下方式
   Data Source=d:/test.db 或者DataSource=test.db--應用在和應用程序或者.net能夠自動找到的目錄
   剩下的就很簡單了~~

SQL語法
   由于以前用SQLServer或者ISeries,所以DDL的語法很汗顏
   創建一個單個Primary Key的table
   CREATE TABLE  [Admin] (
[UserName] [nvarchar] (20)   PRIMARY KEY NOT NULL ,
[Password] [nvarchar] (50)   NOT NULL ,
[Rank] [smallint] NOT NULL ,
[MailServer] [nvarchar] (50)   NOT NULL ,
[MailUser] [nvarchar] (50)   NOT NULL ,
[MailPassword] [nvarchar] (50)   NOT NULL ,
[Mail] [nvarchar] (50)   NOT NULL
   ) ;
  創建一個多個Primary Key的table
   CREATE TABLE  [CodeDetail] (
[CdType] [nvarchar] (10)  NOT NULL ,
[CdCode] [nvarchar] (20)  NOT NULL ,
[CdString1] [ntext]   NOT NULL ,
[CdString2] [ntext]   NOT NULL ,
[CdString3] [ntext]   NOT NULL,
  PRIMARY KEY (CdType,CdCode)
   ) ;
  創建索引
   CREATE  INDEX [IX_Account] ON  [Account]([IsCheck], [UserName]);
   還可以視圖等等。
 

SQLite 分頁查詢

寫法1:

SELECT * FROM TABLE1 LIMIT  20 OFFSET 20 ;

寫法2:

SELECT * FROM TABLE1 LIMIT 20 , 20;

SQLite 文件的壓縮
在多次刪除數據、插入數據、更新數據后,數據庫體積增大,但實際有效數據量很小,則需要對數據庫進行壓縮、整理,把已經刪除的數據從物理文件中移除。調用一下SQL命令即可:

VACUUM

VACUUM的實現

asp.net下SQLite(輕量級最佳數據庫) 原理分析和開發應用

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌拉特后旗| 光山县| 永德县| 嘉定区| 阜宁县| 乌兰察布市| 临猗县| 甘德县| 平江县| 新建县| 达州市| 历史| 沈阳市| 台前县| 台前县| 石门县| 高安市| 法库县| 铜梁县| 永和县| 长春市| 额尔古纳市| 介休市| 昌宁县| 巨鹿县| 石门县| 惠水县| 柳林县| 乐清市| 九寨沟县| 凭祥市| 印江| 阳泉市| 法库县| 塘沽区| 吉木萨尔县| 宣武区| 沙河市| 长武县| 江陵县| 门源|