简单易用的C语言连接SQLite数据库 (c sqlite数据库连接)

SQLite是更流行的嵌入式数据库,它使用轻量级的、无服务器的、自包含的方式存储数据,应用广泛,包括移动设备、桌面应用程序和Web浏览器等。SQLite提供了简单易用的C语言API以及其他语言的接口,因此我们可以使用C语言操作SQLite数据库。

本文旨在介绍如何使用C语言连接SQLite数据库,并提供一些常见操作的示例代码及说明。

一、准备工作

在使用C语言操作SQLite数据库之前,我们需要安装SQLite和相关C语言库。

1. 安装SQLite

我们可以从SQLite官网(https://sqlite.org/)下载预编译的SQLite库。在下载页面中,我们需要选择适合我们操作系统的版本,例如对于Windows系统,我们可以下载Windows DLL版本。下载后,我们需要将SQLite库文件放置在操作系统可搜索的路径中,例如在Windows系统中,SQLite库文件可以放置在系统目录下。

2. 安装C语言库

为了方便使用SQLite,我们可以使用第三方的C语言库。这里我们介绍两个流行的C语言库:

– sqlite3

sqlite3是C语言操作SQLite的一个轻量级库,它提供了SQLite数据库的所有功能。我们可以从官网下载sqlite3的源代码,编译后得到静态/动态库。将静态/动态库放到操作系统可搜索的路径中,我们即可在代码中使用sqlite3库。

– libsqlite3

libsqlite3是一个轻量级的、独立的SQLite库。它提供了SQLite数据库的所有功能,但是使用起来相对比较麻烦。我们可以从官网下载libsqlite3的源代码,编译后得到静态/动态库。将静态/动态库放到操作系统可搜索的路径中,我们即可在代码中使用libsqlite3库。

注意:在使用SQLite操作数据之前,我们需要创建相关的数据库文件及表。这些工作可以在SQLite命令行工具或第三方GUI工具中完成。这里不再介绍。

二、使用C语言连接SQLite数据库

在安装完SQLite和C语言库之后,我们可以打开一个编辑器,新建一个C语言文件,进行以下操作:

1. 引入SQLite头文件

我们需要包含SQLite的头文件“sqlite3.h”,引入以下代码:

“`c

#include

“`

2. 打开数据库

在打开SQLite数据库前,我们需要确定数据库文件的路径,并将路径放入以下代码中:

“`c

char *db_file = “test.db”; // test.db为数据库文件名

sqlite3 *db;

int rc = sqlite3_open(db_file, &db);

if (rc != SQLITE_OK) {

fprintf(stderr, “Can’t open database: %s\n”, sqlite3_errmsg(db));

return 1;

}

“`

以上代码可以打开名为“test.db”的SQLite数据库。打开成功后,我们可以使用指针变量“db”访问数据库。如果打开失败,则会返回相应的错误信息。

3. 执行SQL语句

在使用SQLite进行数据操作时,我们可以执行SQL语句。以下代码演示了如何执行一条CREATE TABLE语句:

“`c

char *sql = “CREATE TABLE user (id INT, name TEXT, age INT);”;

rc = sqlite3_exec(db, sql, NULL, 0, NULL);

if (rc != SQLITE_OK) {

fprintf(stderr, “SQL error: %s\n”, sqlite3_errmsg(db));

return 1;

}

“`

以上代码将会创建一个名为“user”的表格。如果创建失败,则会返回相应的错误信息。

4. 插入数据

在创建了表格后,我们可以向表格中插入数据。以下代码演示了如何插入一条记录:

“`c

char *sql = “INSERT INTO user (id, name, age) VALUES (1, ‘Tom’, 20);”;

rc = sqlite3_exec(db, sql, NULL, 0, NULL);

if (rc != SQLITE_OK) {

fprintf(stderr, “SQL error: %s\n”, sqlite3_errmsg(db));

return 1;

}

“`

以上代码将会向名为“user”的表格中插入一条记录,此记录包含了id、name和age三个字段。如果插入失败,则会返回相应的错误信息。

5. 查询数据

在向表格中插入数据后,我们可以查询表格中的数据。以下代码演示了如何查询表格中所有数据:

“`c

char *sql = “SELECT * FROM user;”;

sqlite3_stmt *stmt;

rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);

if (rc != SQLITE_OK) {

fprintf(stderr, “SQL error: %s\n”, sqlite3_errmsg(db));

return 1;

}

int step = sqlite3_step(stmt);

while (step == SQLITE_ROW) {

int id = sqlite3_column_int(stmt, 0);

char *name = (char *)sqlite3_column_text(stmt, 1);

int age = sqlite3_column_int(stmt, 2);

printf(“id:%d, name:%s, age:%d\n”, id, name, age);

step = sqlite3_step(stmt);

}

if (rc != SQLITE_DONE) {

fprintf(stderr, “SQL error: %s\n”, sqlite3_errmsg(db));

return 1;

}

sqlite3_finalize(stmt);

“`

以上代码将会查询名为“user”的表格中所有记录,并将所有记录的id、name和age等字段输出。如果查询失败,则会返回相应的错误信息。

6. 关闭数据库

在完成对SQLite数据库的操作后,我们需要关闭数据库。以下代码演示了如何关闭数据库:

“`c

rc = sqlite3_close(db);

if (rc != SQLITE_OK) {

fprintf(stderr, “Can’t close database: %s\n”, sqlite3_errmsg(db));

return 1;

}

“`

以上代码将会关闭对名为“test.db”的SQLite数据库的连接。如果关闭失败,则会返回相应的错误信息。

三、

本文介绍了如何使用C语言连接SQLite数据库,并提供了一些常见操作的示例代码及说明。在使用SQLite进行数据操作时,我们需要注意以下几点:

– 在使用SQLite操作数据之前,我们需要创建相关的数据库文件及表。

– 在操作SQLite数据库时,我们需要使用sqlite3或libsqlite3库。

– 在每次操作完成后,我们需要关闭数据库连接。

– 在执行SQL语句时,需要判断返回值,以便打印错误信息。


数据运维技术 » 简单易用的C语言连接SQLite数据库 (c sqlite数据库连接)