SQL Stdio 是一個 C 語言庫,它提供了一種方便的方式來與 SQL 數據庫進行交互
首先,確保您已經在計算機上安裝了 SQLite。如果沒有,請訪問 https://www.sqlite.org/download.html 下載并安裝適合您操作系統的版本。
在您喜歡的文本編輯器中創建一個新的 C 文件,例如 main.c
。
在 main.c
文件的開頭,包含以下頭文件:
#include<stdio.h>
#include <stdlib.h>
#include<sqlite3.h>
SQLite 使用回調函數將查詢結果傳遞給您的程序。編寫一個回調函數,如下所示:
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;
}
在主函數中,打開數據庫連接,執行 SQL 查詢并關閉數據庫連接。例如:
int main() {
sqlite3 *db;
char *err_msg = NULL;
int rc;
// 打開數據庫連接
rc = sqlite3_open("test.db", &db);
if (rc != SQLITE_OK) {
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
return 0;
}
// 創建一個表
const char *create_table_sql = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER);";
rc = sqlite3_exec(db, create_table_sql, NULL, NULL, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "Failed to create table: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 0;
}
// 插入數據
const char *insert_sql = "INSERT INTO users (name, age) VALUES ('John Doe', 30);";
rc = sqlite3_exec(db, insert_sql, NULL, NULL, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "Failed to insert data: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 0;
}
// 查詢數據
const char *select_sql = "SELECT * FROM users;";
rc = sqlite3_exec(db, select_sql, callback, NULL, &err_msg);
if (rc != SQLITE_OK) {
fprintf(stderr, "Failed to select data: %s\n", err_msg);
sqlite3_free(err_msg);
sqlite3_close(db);
return 0;
}
// 關閉數據庫連接
sqlite3_close(db);
return 0;
}
在命令行中,導航到包含 main.c
文件的目錄,然后運行以下命令以編譯程序:
gcc main.c -o main -lsqlite3
接下來,運行編譯后的程序:
./main
這將在當前目錄下創建一個名為 test.db
的 SQLite 數據庫文件,并在其中創建一個名為 users
的表。然后,程序將向表中插入一條記錄,并查詢表中的所有記錄,將結果輸出到控制臺。