首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[SQLite]揭秘SQLite:C编程环境下的数据库应用实战

发布于 2025-06-23 14:47:08
0
81

SQLite是一款轻量级的、开源的关系型数据库管理系统,它具有零配置、跨平台、易于使用等特点。在C编程中,SQLite提供了丰富的API,使得开发者可以轻松地在C程序中集成数据库操作。本文将详细介绍S...

SQLite是一款轻量级的、开源的关系型数据库管理系统,它具有零配置、跨平台、易于使用等特点。在C编程中,SQLite提供了丰富的API,使得开发者可以轻松地在C程序中集成数据库操作。本文将详细介绍SQLite在C编程环境下的应用实战,包括环境搭建、数据库操作、示例代码等。

一、环境搭建

1. SQLite下载与安装

首先,需要从SQLite官网(https://www.sqlite.org/)下载SQLite的源代码。下载完成后,解压到本地文件夹。

2. 配置VC开发环境

在Visual Studio中,需要进行以下配置:

  • 将sqlite3.h文件放置在VC6安装路径中的Include文件夹中,例如:C:\Program Files\Microsoft Visual Studio\vc98\include。
  • 将sqlite3.dll文件放置在C:\Windows\System32文件夹中。
  • 将sqlite3.lib文件放置在VC6安装路径中的LIB文件夹中,例如:C:\Program Files\Microsoft Visual Studio\vc98\lib。

3. 编译SQLite库

如果sqlite3.lib文件不存在,需要通过sqlite3.def文件编译生成。具体步骤如下:

  1. 将sqlite3.def文件复制到C:\Program Files\Microsoft Visual Studio\vc98\bin目录下。
  2. 打开CMD程序,进入上述目录,执行命令:LIB /DEF:sqlite3.def /MACHINE:ix86。
  3. 执行完成后,会生成sqlite3.lib和sqlite3.exp两个文件。

二、数据库操作

SQLite在C编程中提供了丰富的API,以下是一些常用的操作:

1. 连接数据库

#include 
int main() { sqlite3 *db; int rc = sqlite3_open("test.db", &db); if (rc) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } fprintf(stdout, "打开数据库成功\n"); sqlite3_close(db); return 0;
}

2. 创建表

#include 
int main() { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("test.db", &db); if (rc) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } const char *sql = "CREATE TABLE IF NOT EXISTS company (id INTEGER PRIMARY KEY, name TEXT, age INTEGER);"; rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL 错误: %s\n", err_msg); sqlite3_free(err_msg); } else { fprintf(stdout, "表创建成功\n"); } sqlite3_close(db); return 0;
}

3. 插入数据

#include 
int main() { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("test.db", &db); if (rc) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } const char *sql = "INSERT INTO company (name, age) VALUES ('Google', 30);"; rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL 错误: %s\n", err_msg); sqlite3_free(err_msg); } else { fprintf(stdout, "数据插入成功\n"); } sqlite3_close(db); return 0;
}

4. 查询数据

#include 
int main() { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("test.db", &db); if (rc) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } char *sql = "SELECT * FROM company;"; sqlite3_stmt *res; rc = sqlite3_prepare_v2(db, sql, -1, &res, 0); if (rc == SQLITE_OK) { while (sqlite3_step(res) == SQLITE_ROW) { char *name = (char *)sqlite3_column_text(res, 1); int age = sqlite3_column_int(res, 2); printf("Name: %s, Age: %d\n", name, age); } } else { fprintf(stderr, "SQL 错误: %s\n", sqlite3_errmsg(db)); } sqlite3_finalize(res); sqlite3_close(db); return 0;
}

5. 更新数据

#include 
int main() { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("test.db", &db); if (rc) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } const char *sql = "UPDATE company SET age = 35 WHERE name = 'Google';"; rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL 错误: %s\n", err_msg); sqlite3_free(err_msg); } else { fprintf(stdout, "数据更新成功\n"); } sqlite3_close(db); return 0;
}

6. 删除数据

#include 
int main() { sqlite3 *db; char *err_msg = 0; int rc = sqlite3_open("test.db", &db); if (rc) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } const char *sql = "DELETE FROM company WHERE name = 'Google';"; rc = sqlite3_exec(db, sql, 0, 0, &err_msg); if (rc != SQLITE_OK) { fprintf(stderr, "SQL 错误: %s\n", err_msg); sqlite3_free(err_msg); } else { fprintf(stdout, "数据删除成功\n"); } sqlite3_close(db); return 0;
}

三、总结

本文详细介绍了SQLite在C编程环境下的应用实战,包括环境搭建、数据库操作、示例代码等。通过本文的学习,开发者可以轻松地将SQLite集成到C程序中,实现数据库操作。

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流