Windows下C语言操作SQLite

Windows下C语言操作SQLite

Windows下C语言操作SQLite

SQLite是一种轻量级的、自包含的、开源的数据库引擎,它支持大部分SQL92标准。在Windows系统下,我们可以使用C语言来操作SQLite数据库,进行数据的增删改查操作。

准备工作

在开始操作SQLite数据库之前,我们需要先准备好相关的环境:

  1. 下载SQLite:我们需要下载SQLite的最新版本,可以在SQLite的官网(https://www.sqlite.org/index.html )上下载。在Windows系统下,我们可以下载预编译的二进制文件。
  2. 安装SQLite:下载好SQLite后,我们需要将SQLite的二进制文件解压到我们想要的目录中,例如C盘根目录下。
  3. 编译器:在进行C语言开发时,我们需要一个编译器。在Windows系统下,我们可以使用MinGW或者Microsoft Visual Studio等编译器。

连接数据库

在C语言中操作SQLite数据库,首先需要打开并连接数据库。SQLite提供了一个C语言的接口来实现这一目的。下面是一个简单的示例代码,演示如何打开SQLite数据库:

#include <stdio.h>
#include <sqlite3.h>

int main() {
    sqlite3 *db;
    int rc;

    rc = sqlite3_open("test.db", &db);

    if (rc) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        return(0);
    } else {
        fprintf(stdout, "Database opened successfully\n");
    }

    sqlite3_close(db);
    return 0;
}

运行上面的代码,如果一切正常,会输出Database opened successfully,表示数据库成功打开。

创建表格

一旦连接了数据库,我们就可以进行创建表格的操作。SQLite使用SQL语句来创建表格。下面是一个示例代码,演示如何在SQLite数据库中创建一个学生表格:

#include <stdio.h>
#include <sqlite3.h>

int main() {
    sqlite3 *db;
    char *err_msg = 0;
    int rc;

    rc = sqlite3_open("test.db", &db);

    if (rc) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        return 0;
    }

    char *sql = "CREATE TABLE Students("
                "id INT PRIMARY KEY NOT NULL,"
                "name TEXT NOT NULL,"
                "age INT NOT NULL);";

    rc = sqlite3_exec(db, sql, 0, 0, &err_msg);

    if (rc != SQLITE_OK) {
        fprintf(stderr, "SQL error: %s\n", err_msg);

        sqlite3_free(err_msg);
        sqlite3_close(db);

        return 1;
    } else {
        fprintf(stdout, "Table created successfully\n");
    }

    sqlite3_close(db);

    return 0;
}

运行上面的代码,如果一切正常,会输出Table created successfully,表示表格成功创建。

插入数据

创建表格后,我们可以向表格中插入数据。下面是一个示例代码,演示如何向上面创建的学生表格中插入一条数据:

#include <stdio.h>
#include <sqlite3.h>

int main() {
    sqlite3 *db;
    char *err_msg = 0;
    int rc;

    rc = sqlite3_open("test.db", &db);

    if (rc) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        return 0;
    }

    char *sql = "INSERT INTO Students (id, name, age) "
                "VALUES (1, 'Alice', 20);";

    rc = sqlite3_exec(db, sql, 0, 0, &err_msg);

    if (rc != SQLITE_OK) {
        fprintf(stderr, "SQL error: %s\n", err_msg);

        sqlite3_free(err_msg);
        sqlite3_close(db);

        return 1;
    } else {
        fprintf(stdout, "Records created successfully\n");
    }

    sqlite3_close(db);

    return 0;
}

运行上面的代码,如果一切正常,会输出Records created successfully,表示数据成功插入。

查询数据

插入数据后,我们可以对数据进行查询操作。下面是一个示例代码,演示如何查询学生表格中的所有数据:

#include <stdio.h>
#include <sqlite3.h>

int callback(void *NotUsed, int argc, char **argv, char **azColName) {
    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) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        return 0;
    }

    char *sql = "SELECT * FROM Students;";

    rc = sqlite3_exec(db, sql, callback, 0, &err_msg);

    if (rc != SQLITE_OK) {
        fprintf(stderr, "SQL error: %s\n", err_msg);

        sqlite3_free(err_msg);
        sqlite3_close(db);

        return 1;
    }

    sqlite3_close(db);

    return 0;
}

运行上面的代码,会输出查询到的数据。

更新数据和删除数据

除了插入和查询数据,我们还可以更新和删除数据。下面是一个示例代码,演示如何更新学生表格中的数据:

#include <stdio.h>
#include <sqlite3.h>

int main() {
    sqlite3 *db;
    char *err_msg = 0;
    int rc;

    rc = sqlite3_open("test.db", &db);

    if (rc) {
        fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
        return 0;
    }

    char *sql = "UPDATE Students SET age = 21 WHERE id = 1;";

    rc = sqlite3_exec(db, sql, 0, 0, &err_msg);

    if (rc != SQLITE_OK) {
        fprintf(stderr, "SQL error: %s\n", err_msg);

        sqlite3_free(err_msg);
        sqlite3_close(db);

        return 1;
    } else {
        fprintf(stdout, "Records updated successfully\n");
    }

    sqlite3_close(db);

    return 0;
}

上面的代码会将id为1的学生的年龄修改为21。

总结

通过上面的示例代码,我们可以看到如何在Windows系统下使用C语言来操作SQLite数据库。我们可以通过连接数据库、创建表格、插入数据、查询数据、更新数据和删除数据等操作来管理SQLite数据库。SQLite的轻量级和易用性使得它成为一个很好的自包含数据库引擎,并且在很多应用程序中被广泛使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程