当前位置:首页 > C > 正文

C语言操作SQLite数据库(嵌入式开发入门教程)

在嵌入式系统开发中,轻量级、无服务器的数据库是不可或缺的工具。而 SQLite 正是这样一款非常适合嵌入式环境使用的数据库引擎。本文将手把手教你如何在 C语言 中使用 SQLite 进行基本操作,即使是编程小白也能轻松上手!

C语言操作SQLite数据库(嵌入式开发入门教程) C语言 SQLite 嵌入式开发 SQLite教程 第1张

为什么选择 SQLite?

SQLite 是一个开源的、零配置、自包含、无服务器的 SQL 数据库引擎。它不需要独立的数据库服务器进程,所有数据都存储在一个单一的磁盘文件中,非常适合资源受限的 嵌入式开发 环境。

准备工作

要开始使用 SQLite,你需要:

  • 安装 SQLite 开发库(Linux 下通常为 libsqlite3-dev
  • 一个支持 C 编译的环境(如 GCC)
  • 基本的 C 语言知识

第一步:安装 SQLite 库

在 Ubuntu/Debian 系统中,你可以通过以下命令安装:

sudo apt-get install libsqlite3-dev

第二步:编写第一个 SQLite 程序

下面是一个完整的 C 程序示例,演示如何创建数据库、建表、插入数据并查询。

#include <stdio.h>#include <stdlib.h>#include <sqlite3.h>// 回调函数:用于处理 SELECT 查询结果static int callback(void *data, int argc, char **argv, char **azColName) {    printf("%s: \n", (const char*)data);    for(int i = 0; i < argc; i++) {        printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");    }    printf("\n");    return 0;}int main() {    sqlite3 *db;    char *err_msg = 0;    int rc;    // 打开或创建数据库    rc = sqlite3_open("test.db", &db);    if (rc != SQLITE_OK) {        fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));        sqlite3_close(db);        return 1;    }    // 创建表    const char *sql_create = "CREATE TABLE IF NOT EXISTS students ("                             "id INTEGER PRIMARY KEY, "                             "name TEXT NOT NULL, "                             "age INTEGER);";    rc = sqlite3_exec(db, sql_create, 0, 0, &err_msg);    if (rc != SQLITE_OK) {        fprintf(stderr, "SQL 错误: %s\n", err_msg);        sqlite3_free(err_msg);        sqlite3_close(db);        return 1;    }    // 插入数据    const char *sql_insert = "INSERT INTO students (name, age) VALUES ('张三', 20), ('李四', 22);";    rc = sqlite3_exec(db, sql_insert, 0, 0, &err_msg);    if (rc != SQLITE_OK) {        fprintf(stderr, "插入失败: %s\n", err_msg);        sqlite3_free(err_msg);        sqlite3_close(db);        return 1;    }    // 查询数据    const char *sql_select = "SELECT * FROM students;";    printf("查询结果:\n");    rc = sqlite3_exec(db, sql_select, callback, "记录", &err_msg);    if (rc != SQLITE_OK) {        fprintf(stderr, "查询失败: %s\n", err_msg);        sqlite3_free(err_msg);        sqlite3_close(db);        return 1;    }    // 关闭数据库    sqlite3_close(db);    printf("数据库操作完成!\n");    return 0;}

第三步:编译和运行

将上述代码保存为 sqlite_demo.c,然后使用以下命令编译:

gcc sqlite_demo.c -lsqlite3 -o sqlite_demo

运行程序:

./sqlite_demo

你将看到类似如下的输出:

查询结果:记录: id = 1name = 张三age = 20记录: id = 2name = 李四age = 22数据库操作完成!

关键知识点总结

  • sqlite3_open():打开或创建数据库文件
  • sqlite3_exec():执行 SQL 语句(包括 DDL 和 DML)
  • 回调函数:用于处理 SELECT 查询返回的每一行数据
  • 错误处理:始终检查返回值并释放错误信息内存

结语

通过本教程,你已经掌握了在 C语言 中使用 SQLite 进行基本数据库操作的方法。这对于 嵌入式开发 非常实用,因为 SQLite 不依赖外部服务,占用资源少,且稳定可靠。希望这篇 SQLite教程 能帮助你顺利开启嵌入式数据库开发之旅!

关键词:C语言、SQLite、嵌入式开发、SQLite教程