SQLite是一款轻量级的、开源的关系型数据库管理系统,它具有零配置、跨平台、易于使用等特点。在C编程中,SQLite提供了丰富的API,使得开发者可以轻松地在C程序中集成数据库操作。本文将详细介绍S...
SQLite是一款轻量级的、开源的关系型数据库管理系统,它具有零配置、跨平台、易于使用等特点。在C编程中,SQLite提供了丰富的API,使得开发者可以轻松地在C程序中集成数据库操作。本文将详细介绍SQLite在C编程环境下的应用实战,包括环境搭建、数据库操作、示例代码等。
首先,需要从SQLite官网(https://www.sqlite.org/)下载SQLite的源代码。下载完成后,解压到本地文件夹。
在Visual Studio中,需要进行以下配置:
如果sqlite3.lib文件不存在,需要通过sqlite3.def文件编译生成。具体步骤如下:
SQLite在C编程中提供了丰富的API,以下是一些常用的操作:
#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;
} #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;
} #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;
} #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;
} #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;
} #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程序中,实现数据库操作。