SQLite3 数据库使用
一、SQLite简介 SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。 SQLite 支持多数SQL92标准,例如:索引、限制、触发和查看支持。 支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型,支持事务。 二、下载SQLite SQLite可以到官方站点下载 http://www.sqlite.org/download.html 包括:Linux,Mac OS X,Windows下的已编译文件以及源代码、帮助文档。 SQLite浏览工具下载:http://sqliteadmin.orbmu2k.de/ 三、SQLite使用 1、 数据库连接、SQL解析接口: sqlite3_open(); //以UTF-8方式打开
2、sqlite3_column() sqlite3_column_blob() 3、SQL sqlite> create table 数据库 (名字,嵌入式); 4、事务 result = sqlite3_exec(db,"BEGIN;",0);//批量处理 for (int i=0; i<10000; i++) { //插入一条数据 result = sqlite3_exec(db, "INSERT INTO MyTable (MyText,MyDate,MyTime,MyFloat) VALUES ('SQLITE3!','2013-07-28','23:00:00',1000);",0); } result = sqlite3_exec(db,"COMMIT;",0); 5、触发器 假设"customers"表存储了客户信息,"orders"表存储了订单信息,下面的触发器 确保当用户 改变地址时所有的 关联订单地址均进行相应改变: 6、SQL执行 回调 与 不回调 回调方案 不回调方案 int main( int,char ** ) { sqlite3 * db; int result; char * errmsg = NULL; char ** dbResult; //是 char ** 类型,两个*号 int nRow,nColumn; int i,j; int index; result = sqlite3_open( “c:database.db”,&db ); if( result != SQLITE_OK ) { //数据库打开失败 return -1; } //数据库操作代码 //假设前面已经创建了 MyTable_1 表 //开始查询,传入的 dbResult 已经是 char **,这里又加了一个 & 取地址符,传递进去的就成了 char *** result = sqlite3_get_table( db,“select * from MyTable_1”,&dbResult,&nRow,&nColumn,&errmsg ); if( SQLITE_OK == result ) { //查询成功 index = nColumn; //前面说过 dbResult 前面第一行数据是字段名称,从 nColumn 索引开始才是真正的数据 printf( “查到%d条记录n”,nRow ); for( i = 0; i < nRow ; i++ ) { printf( “第 %d 条记录n”,i+1 ); for( j = 0 ; j < nColumn; j++ ) { printf( “字段名:%s ?> 字段值:%sn”,dbResult[j],dbResult [index] ); ++index; // dbResult 的字段值是连续的,从第0索引到第 nColumn - 1索引都是字段名称,从第 nColumn 索引开始,后面都是字段值,它把一个二维的表(传统的行列表示法)用一个扁平的形式来表示 } printf( “-------n” ); } } //到这里,不论数据库查询是否成功,都释放 char** 查询结果,使用 sqlite 提供的功能来释放 sqlite3_free_table( dbResult ); //关闭数据库 sqlite3_close( db ); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |