SQLite3
SQLite是一个轻量级的数据库。和常用的MySQL大同小异。和MySQL相比,数据类型基本一样,只是sqlite的指令都是以"."开头(如:mysql中查看当前有哪些数据库是“show databases",而sqlite中是".databases")。当然,SQL语句都是一样的语法规则。
- Host System: Archlinux
- gcc: 4.6.1 20110819
- sqlite3: 3.7.8 20110919
系统一般没有默认安装sqlite数据库,所以先要安装sqlite3:
- # pacman -S sqlite3
可以使用"sqlite3 + 数据库名"来打开一个数据库。
常用函数
- sqlite3_open(const char *filename, sqlite3 **ppDb);
- sqlite3_close(sqlite3 *db);
- sqlite3_exec(sqlite3*, const char *sql, int (*callback)(void*,int,char**,char**), void *, char **errmsg);
这三个函数基本上能完成对sqlite3的所有操作。需要用的头文件为"sqlite3.h"。
- 打开(新建)数据库
- sqlite3 *db;
- sqlite3_open("test.db", &db);
- 关闭数据库
- sqlite3_close(db);
- 执行sql语句(以创建表为例)
- char sql[128];
- memset(sql, " ", 128);
- sprintf(sql, "%s%s%s", "create table ", "test_tb", "(id INTEGER PRIMARY KEY, data TEXT)");
- sqlite3_exec(db, sql, NULL, NULL, NULL);
sqlite3_exec中第一个和第二个参数的意义很好理解。第三个参数是一个回调(callback)函数。第四个参数可用于给回调函数传入一个参数。第五个参数为这条sql语句执行后的返回。我试了好几次,第五个参数的返回值打印出来都是乱码,所以建议直接查看sqlite3_exec函数的返回指,它返回一个整型的数,可以通过这个数字来得知的执行结果。