SQLite C API 备忘录

一、数据库打开与关闭

sqlite3_open()

作用:

打开数据库,函数:

cpp 复制代码
int sqlite3_open(
    const char *filename,
    sqlite3 **ppDb
);

参数:

参数 说明
filename 数据库文件路径
ppDb 返回数据库对象

例子:

cpp 复制代码
sqlite3 *db;

sqlite3_open(
    "/home/rocky/my.db",
    &db
);

效果,自动创建。

cpp 复制代码
my.db不存在
复制代码
my.db存在

打开,成功:

复制代码
SQLITE_OK

sqlite3_close()

作用:

关闭数据库连接。

cpp 复制代码
int sqlite3_close(sqlite3 *db);
复制代码
sqlite3_close(db);

类似:

复制代码
fclose(file);

不用数据库一定关闭。


二、执行SQL语句(最常用)

sqlite3_exec()

这是最重要的函数。

cpp 复制代码
int sqlite3_exec(
    sqlite3 *db,
    const char *sql,
    int (*callback)(),
    void *arg,
    char **errmsg
);

参数:

参数 作用
db 数据库对象
sql SQL语句
callback 查询结果处理函数
arg 传给callback的数据
errmsg 错误信息

SQLite callback 的特点:

一行数据,调用一次回调函数。

执行创建表

cpp 复制代码
char *sql=
"create table stu(id int,name text);";

sqlite3_exec(
    db,
    sql,
    NULL,
    NULL,
    NULL
);

因为:

CREATE没有返回结果

所以:

cpp 复制代码
callback=NULL
函数 作用 使用频率
sqlite3_open 打开数据库 ★★★★★
sqlite3_close 关闭数据库 ★★★★★
sqlite3_exec 执行SQL ★★★★★
sqlite3_errmsg 获取错误 ★★★★★
callback 处理查询结果 ★★★★★
sqlite3_get_table 简单查询 ★★★
sqlite3_free_table 释放查询结果 ★★★
sqlite3_prepare_v2 预处理SQL ★★★★★
sqlite3_bind_int 绑定参数 ★★★★★
sqlite3_bind_text 绑定字符串 ★★★★★
sqlite3_step 执行预处理SQL ★★★★★
sqlite3_column_int 取字段 ★★★★★
sqlite3_column_text 取字符串 ★★★★★
sqlite3_finalize 释放stmt ★★★★★
相关推荐
两点王爷8 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
两点王爷8 小时前
PostgreSQL 好用又独特的特性与空间函数
数据库
梦帮科技8 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
TDengine (老段)10 小时前
TDengine 常见问题 TOP3
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
Navigator_Z10 小时前
LeetCode //C - 1252. Cells with Odd Values in a Matrix
c语言·算法·leetcode
螺蛳粉 螺蛳粉12 小时前
MySQL 分布式集群系列 · 第五篇——全方位对比:NDB、MGR、主从复制、分库分表怎么选?
数据库·分布式·mysql
是隼人12 小时前
buuctf-pwn [NewStarCTF 2023 公开赛道]stack migration(64位栈迁移)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
Logic10115 小时前
C语言/数据结构贪心算法题解:买卖股票的最佳时机——一次交易最大利润(O(n)时间O(1)空间)
c语言·数据结构·贪心算法·数组·时间复杂度·算法题·股票交易
Logic10115 小时前
C语言/数据结构位运算题解:异或XOR找出货币交易中的“独特面值“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
这个DBA有点耶16 小时前
从OLTP到OLAP到HTAP:数据库负载分类的技术演进与选型指南
数据库·mysql·架构