嵌入式数据库Sqlite
问题描述不够具体,但我可以提供一个基本的SQLite数据库操作示例。
假设我们有一个简单的用户表,我们想要创建这个表,并插入一些数据。
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
static 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 *zErrMsg = 0;
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(stderr, "Opened database successfully\n");
}
// 创建一个表
const char *sql = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER, email TEXT);";
rc = sqlite3_exec(db, sql, callback, 0, &zErrMsg);
if( rc != SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}
// 插入数据
sqlite3_exec(db, "INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');", callback, 0, &zErrMsg);
sqlite3_exec(db, "INSERT INTO users (name, age, email) VALUES ('Bob', 25, 'bob@example.com');", callback, 0, &zErrMsg);
sqlite3_exec(db, "INSERT INTO users (name, age, email) VALUES ('Charlie', 35, 'charlie@example.com');", callback, 0, &zErrMsg);
// 查询数据
sqlite3_exec(db, "SELECT * FROM users;", callback, 0, &zErrMsg);
sqlite3_close(db);
return 0;
}
这段代码首先尝试打开一个名为test.db
的SQLite数据库。如果数据库不存在,它会创建一个新的数据库。然后,它创建一个名为users
的表(如果表尚不存在),具有id
、name
、age
和email
列。接下来,它插入三个用户数据行。最后,它执行一个查询来列出users
表中的所有记录。
请注意,在实际应用程序中,你需要添加错误处理和其他安全性检查。这个例子只是为了展示如何使用SQLite C API的基本操作。
评论已关闭