檔案資料庫試用

2021-08-22 02:12:53 字數 3353 閱讀 1483

檔案資料庫

檔案資料庫又叫嵌入式資料庫,將整個資料庫的內容儲存在單個索引檔案中,以便於資料庫的發布。

檔案資料庫的

3

個重要特徵(相對於傳統資料庫)

1.

資料操作介面

sql92

標準,不管是傳統資料庫,還是檔案資料庫,都必須支援

sql92

標準。

2.

資料儲存格式

傳統資料庫(

db2, oracle, sql server

等)資料儲存的方式各異。

檔案資料庫將資料儲存在單一檔案

中。

3.api

支援傳統資料庫都支援

odbc

和jdbc

。某些檔案資料庫不支援

odbc

和jdbc

(sqlite

都不支援,

berkeley db

有odbc

和jdbc

支援,firdbird

有第三方的

odbc

驅動)。

檔案資料庫與傳統資料庫的比較

優勢:

由於資料儲存在單一檔案中,資料庫的部署和發布都比較簡單,適用於內嵌在應用程式中。

資料量不是太大時,速度比傳統資料庫要快。

缺點:由於資料儲存在單一檔案中,資料庫開啟時,該檔案會被整個

load

到記憶體,應此資料庫不能過大(

100m

以內,個人測試)。

各種檔案資料庫的比較

sqlite:

老牌的檔案資料庫,完全免費

( 250k,c

**)。支援事務機制和

blob

資料型別。

berkerley db:

更老牌的檔案資料庫,最穩定的資料庫,完全可以取代大部分傳統

client/server

資料庫的應用場合;支援

xml(代價是

30m硬碟空間)。缺點是配置和使用比較複雜,不太適合小專案。

firbird

:與sqlite

比較類似,有

c#支援。某些發布版本不能

build,

很久沒有關注了。

access

:一般不考慮

sqlite

簡單介紹

個人比較喜歡

sqlite,

250k

的源;而且作者很熱心,有問必答。

以下演示一下使用

sqlite

的步驟,先建立乙個資料庫,然後查詢其中的內容。

2個重要結構體和

5個主要函式:

sqlite3 *pdb,

資料庫控制代碼,跟檔案控制代碼

file

很類似sqlite3_stmt *stmt,

這個相當於

odbc

的command

物件,用於儲存編譯好的

sql語句

sqlite3_open(),

開啟資料庫

sqlite3_exec(),

執行非查詢的

sql語句

sqlite3_prepare(),

準備sql

語句,執行

select

語句或者要使用

parameter bind

時,用這個函式(封裝了

sqlite3_exec).

sqlite3_step(),

在呼叫sqlite3_prepare

後,使用這個函式在記錄集中移動。

sqlite3_close(),

關閉資料庫檔案

還有一系列的函式,用於從記錄集欄位中獲取資料,如

sqlite3_column_text(),

取text

型別的資料。

sqlite3_column_blob

(),取

blob

型別的資料

sqlite3_column_int(),

取int

型別的資料

例項**如下

,

附件工程可直接編譯,例子使用了

blob

資料型別。

#include "sqlite3.h" //

包含乙個標頭檔案就可以使用所以

sqlite

的介面了

#include "stdlib.h"

#include "stdio.h"

#include "string.h"

#pragma comment(lib, "sqlite.lib") //

我把sqlite

編譯成了乙個靜態的

lib檔案。

void createdb();

void querydb();

int main()

void createdb()

void querydb()

}索引:

傳統資料庫:

client/server

構架的資料庫

dbf檔案資料匯入資料庫

在設計介面用fileupload伺服器控制項 後台 public int exportdbf sourcetype dbf sourcedb serverpath exclusive no null no collate machine backgroundfetch no deleted no c...

sql檔案資料匯入資料庫

1.建立createsql.sql檔案,內容 drop table if exists t user create table t user user id int 11 not null auto increment,user name char 30 not null,user password...

MySQL sql檔案 資料庫指令碼檔案

sql是sql的指令碼檔案,通常用來批量執行sql語句,一鍵式生成資料庫表。建立sql檔案,進行編寫 vim db.sql 建表建庫檔案都寫入其中 create dadabase if not exists order system2 use order system2 create table i...