對(duì)于很多程序員來(lái)說(shuō),SQLite并不陌生。SQLite 是一款主要用于嵌入式的開(kāi)源數(shù)據(jù)庫(kù),可集成在自己的桌面程序中,也可替代Access作為后臺(tái)數(shù)據(jù)庫(kù)。SQLite 支持多數(shù)SQL92標(biāo)準(zhǔn),例如:索引、限制、觸發(fā)和查看支持,支持 NULL、INTEGER、REAL、TEXT 和 BLOB 數(shù)據(jù)類(lèi)型,支持事務(wù)。以下是一些SQLite的簡(jiǎn)單使用。
//建立數(shù)據(jù)庫(kù)C:/sqlite-3_6_11> sqlite3.exe dbname.db
建立數(shù)據(jù)庫(kù)的時(shí)候sqlite3.exe后面跟數(shù)據(jù)庫(kù)文件名
//創(chuàng)建數(shù)據(jù)表sqlite> create table users(userid varchar(20) PRIMARY KEY,...> age int,...> birthday datetime);//添加記錄insert into users values('wang',20,'1989-5-4');insert into users values('li',22,'1987-11-16');//查詢記錄select * from users order by birthday;//刪除記錄delete from users where userid='wang';//退出sqlitesqlite> .exitSQLite數(shù)據(jù)庫(kù)的數(shù)據(jù)結(jié)構(gòu)是存貯在 "sqlite_master" 表中,具體命令可以輸入.help查看或參考SQLite幫助文檔。
在VC下使用SQLite的簡(jiǎn)單例子:
#include "../sqlite3_lib/sqlite3.h" //請(qǐng)以你的地址為準(zhǔn)#pragma comment(lib, "../sqlite3_lib/sqlite3.lib")//請(qǐng)以你的地址為準(zhǔn)static int _sql_callback(void * notused, int argc, char ** argv, char ** szColName){int i;for ( i=0; i < argc; i++ ){printf( "%s = %s/n", szColName[i], argv[i] == 0 ? "NUL" : argv[i] );}return 0;}int main(int argc, char * argv[]){const char * sSQL1 = "create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";const char * sSQL2 = "insert into users values('wang',20,'1989-5-4');";const char * sSQL3 = "select * from users;";sqlite3 * db = 0;char * pErrMsg = 0;int ret = 0;//連接數(shù)據(jù)庫(kù)ret = sqlite3_open("./test.db", &db);if ( ret != SQLITE_OK ){fprintf(stderr, "不能打開(kāi)數(shù)據(jù)庫(kù): %s", sqlite3_errmsg(db));return(1);}printf("數(shù)據(jù)庫(kù)連接成功!/n");//執(zhí)行SQL建立數(shù)據(jù)庫(kù)sqlite3_exec( db, sSQL1, 0, 0, &pErrMsg );if ( ret != SQLITE_OK ){fprintf(stderr, "SQL error: %s/n", pErrMsg);sqlite3_free(pErrMsg);}//插入記錄sqlite3_exec( db, sSQL2, 0, 0, &pErrMsg);//查詢數(shù)據(jù)表sqlite3_exec( db, sSQL3, _sql_callback, 0, &pErrMsg);//關(guān)閉數(shù)據(jù)庫(kù)sqlite3_close(db);db = 0;return 0;}新聞熱點(diǎn)
疑難解答