在嵌入式系统、高性能服务器或资源受限环境中,使用 C语言数据库访问 技术可以高效地与数据库交互。本教程将手把手教你如何用 C 语言连接并操作 MySQL 和 SQLite 数据库,即使你是编程小白也能轻松上手!
C 语言以其高效、轻量和接近硬件的特性,在需要极致性能的场景中广受欢迎。无论是开发物联网设备还是高性能后端服务,C语言连接MySQL 或 SQLite 都能提供稳定可靠的数据库支持。
在开始之前,请确保你的开发环境已安装以下内容:
SQLite 是一个无需独立服务器进程的嵌入式数据库,非常适合小型项目或资源受限环境。下面是一个完整的 C语言SQLite教程 示例:
#include <stdio.h>#include <sqlite3.h>// 回调函数:用于处理查询结果static int callback(void *data, 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 != SQLITE_OK) { fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db)); return 1; } printf("成功打开数据库!\n"); // 创建表 const char *sql_create = "CREATE TABLE IF NOT EXISTS users (" "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); } else { printf("表创建成功!\n"); } // 插入数据 const char *sql_insert = "INSERT INTO users (name, age) VALUES ('张三', 25);"; rc = sqlite3_exec(db, sql_insert, 0, 0, &err_msg); if (rc != SQLITE_OK) { fprintf(stderr, "插入失败: %s\n", err_msg); sqlite3_free(err_msg); } // 查询数据 const char *sql_select = "SELECT * FROM users;"; rc = sqlite3_exec(db, sql_select, callback, 0, &err_msg); if (rc != SQLITE_OK) { fprintf(stderr, "查询失败: %s\n", err_msg); sqlite3_free(err_msg); } // 关闭数据库 sqlite3_close(db); return 0;} 编译命令(需先安装 sqlite3-dev):
gcc -o sqlite_example sqlite_example.c -lsqlite3
对于需要多用户并发访问的场景,C语言连接MySQL 是更合适的选择。以下是连接 MySQL 的基本示例:
#include <stdio.h>#include <mysql/mysql.h>int main() { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "localhost"; char *user = "your_username"; char *password = "your_password"; char *database = "test_db"; // 初始化连接 conn = mysql_init(NULL); // 连接数据库 if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "连接失败: %s\n", mysql_error(conn)); return 1; } printf("成功连接到 MySQL 数据库!\n"); // 执行查询 if (mysql_query(conn, "SELECT * FROM users")) { fprintf(stderr, "查询失败: %s\n", mysql_error(conn)); return 1; } res = mysql_store_result(conn); // 输出结果 while ((row = mysql_fetch_row(res)) != NULL) { printf("ID: %s, Name: %s, Age: %s\n", row[0], row[1], row[2]); } // 释放资源 mysql_free_result(res); mysql_close(conn); return 0;} 编译命令(需先安装 libmysqlclient-dev):
gcc -o mysql_example mysql_example.c -lmysqlclient
通过本教程,你已经掌握了 C语言数据库访问 的两种主流方式:轻量级的 SQLite 和功能强大的 MySQL。无论你是开发 嵌入式数据库编程 项目,还是构建高性能后端服务,这些技能都将为你打下坚实基础。
动手试试吧!修改示例代码,添加自己的业务逻辑,你会发现 C 语言与数据库的结合既高效又灵活。
本文由主机测评网于2025-12-13发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025126957.html