C 函數庫可用於資料庫管理,透過<sqlite3.h> 頭文件提供了一系列函數,支援連接、建立表、插入資料、查詢、事務處理等操作,該庫適用於管理與資料庫交互的常見任務。
C 函數庫用於資料庫管理
C 標準函式庫提供了廣泛的函數來處理與資料庫互動相關的常見任務。這些函數庫主要是來自 <sqlite3.h>
頭檔。
連接到資料庫
sqlite3 *db; int rc = sqlite3_open("database.db", &db);
建立表格
char *zErrMsg = 0; int rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)", NULL, 0, &zErrMsg);
插入資料##
sqlite3_stmt *stmt; sqlite3_prepare_v2(db, "INSERT INTO mytable (name) VALUES (?)", -1, &stmt, NULL); sqlite3_bind_text(stmt, 1, "John Doe", -1, SQLITE_STATIC); sqlite3_step(stmt); sqlite3_finalize(stmt);
查詢資料
sqlite3_stmt *stmt; sqlite3_prepare_v2(db, "SELECT name FROM mytable WHERE id=?", -1, &stmt, NULL); sqlite3_bind_int(stmt, 1, 1); while (sqlite3_step(stmt) == SQLITE_ROW) { printf("%s\n", sqlite3_column_text(stmt, 0)); } sqlite3_finalize(stmt);
事務處理
sqlite3_exec(db, "BEGIN TRANSACTION"); // 执行多条查询 sqlite3_exec(db, "COMMIT");
實戰案例:管理學生資訊資料庫## 以上是C++ 函式庫如何進行資料庫管理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!#include <iostream>
#include <sqlite3.h>
using namespace std;
int main() {
sqlite3 *db;
int rc = sqlite3_open("students.db", &db);
if (rc) {
cerr << "Error opening database: " << sqlite3_errmsg(db) << endl;
return -1;
}
// 创建表
char *zErrMsg = 0;
rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)", NULL, 0, &zErrMsg);
if (rc) {
cerr << "Error creating table: " << zErrMsg << endl;
sqlite3_free(zErrMsg);
sqlite3_close(db);
return -1;
}
// 插入数据
sqlite3_stmt *stmt;
rc = sqlite3_prepare_v2(db, "INSERT INTO students (name, age) VALUES (?, ?)", -1, &stmt, NULL);
if (rc) {
cerr << "Error preparing insert statement: " << sqlite3_errmsg(db) << endl;
sqlite3_close(db);
return -1;
}
// 插入多条数据
for (int i = 0; i < 5; i++) {
sqlite3_bind_text(stmt, 1, "Student " + to_string(i), -1, SQLITE_STATIC);
sqlite3_bind_int(stmt, 2, 20 + i);
sqlite3_step(stmt);
sqlite3_reset(stmt);
}
sqlite3_finalize(stmt);
// 查询数据
stmt = nullptr;
rc = sqlite3_prepare_v2(db, "SELECT * FROM students", -1, &stmt, NULL);
if (rc) {
cerr << "Error preparing select statement: " << sqlite3_errmsg(db) << endl;
sqlite3_close(db);
return -1;
}
while (sqlite3_step(stmt) == SQLITE_ROW) {
int id = sqlite3_column_int(stmt, 0);
const char *name = sqlite3_column_text(stmt, 1);
int age = sqlite3_column_int(stmt, 2);
cout << "Record " << id << ": Name = " << name << ", Age = " << age << endl;
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return 0;
}