SQLite
大约 1 分钟
reference
SQLite
- SQLite数据存储类型:
integer
: 整型值real
: 浮点值text
: 文本字符串blob
: 二进制数据(比如文件)
注 : 实际上
SQLite
是无类型的,就算声明为integer
类型,还是能存储字符串文本(主键除外),建表时声明啥类型或者不声明类型都可以。
usage
// 打开数据库
int sqlite3_open(
const char *filename, // 数据库的文件路径
sqlite3 **ppDb // 数据库实例
);
// 执行 SQL 语句
int sqlite3_exec(
sqlite3*, // 一个打开的数据库实例
const char *sql, // 需要执行的 SQL 语句
int (*callback)(void*,int, char**, char**), // SQL 语句执行完毕后的回调
void *, // 回调函数的第 1 个参数
char **errmsg // 错误信息
);
// 检查 SQL 语句的合法性(查询前的准备)
int sqlite3_prepare_v2(
sqlite3 *db, // 数据库实例
const char *zSql, // 需要检查的 SQL 语句
int nByte, // SQL 语句的最大字节长度
sqlite3_stmt **ppStmt, // sqlite3_stmt 实例,用来获得数据库数据
const char **pzTail
);
// 查询一行数据
int sqlite3_step(sqlite3_stmt*); // 如果查询到一行数据,就会返回 SQLITE_ROW
// 利用 stmt 获得某一字段的值(从下标 0 开始)
int sqlite3_column_int(sqlite3_stmt*, int iCol); // 整型数据
sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); // 长整型数据
double sqlite3_column_double(sqlite3_stmt*, int iCol); // 浮点数据
const void *sqlite3_column_blob(sqlite3_stmt*, int iCol); // 二进制文本数据
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol); // 字符串数据