C++利用sqlite3创建数据库的代码
时间: 2023-08-29 11:05:37 浏览: 155
以下是使用 C++ 和 sqlite3 库创建和操作数据库的示例代码:
```cpp
#include <iostream>
#include <sqlite3.h>
int main() {
sqlite3* db;
char* errMsg = 0;
// 打开或创建数据库
int rc = sqlite3_open("example.db", &db);
if (rc) {
std::cerr << "无法打开数据库: " << sqlite3_errmsg(db) << std::endl;
sqlite3_close(db);
return 1;
}
// 创建名为 users 的表
std::string sql = "CREATE TABLE users (id INT, name TEXT, age INT);";
rc = sqlite3_exec(db, sql.c_str(), 0, 0, &errMsg);
if (rc != SQLITE_OK) {
std::cerr << "无法创建表: " << errMsg << std::endl;
sqlite3_free(errMsg);
sqlite3_close(db);
return 1;
}
// 插入数据到 users 表
sql = "INSERT INTO users (id, name, age) VALUES (1, 'Alice', 21);"
"INSERT INTO users (id, name, age) VALUES (2, 'Bob', 25);"
"INSERT INTO users (id, name, age) VALUES (3, 'Charlie', 30);";
rc = sqlite3_exec(db, sql.c_str(), 0, 0, &errMsg);
if (rc != SQLITE_OK) {
std::cerr << "无法插入数据: " << errMsg << std::endl;
sqlite3_free(errMsg);
sqlite3_close(db);
return 1;
}
// 查询 users 表中的数据
sql = "SELECT * FROM users;";
sqlite3_stmt* stmt = nullptr;
rc = sqlite3_prepare_v2(db, sql.c_str(), -1, &stmt, nullptr);
if (rc != SQLITE_OK) {
std::cerr << "无法查询数据: " << sqlite3_errmsg(db) << std::endl;
sqlite3_close(db);
return 1;
}
std::cout << "id\tname\tage\n";
while (sqlite3_step(stmt) == SQLITE_ROW) {
std::cout << sqlite3_column_int(stmt, 0) << "\t" << sqlite3_column_text(stmt, 1) << "\t" << sqlite3_column_int(stmt, 2) << std::endl;
}
sqlite3_finalize(stmt); // 释放资源
sqlite3_close(db); // 关闭数据库连接
return 0;
}
```
这个示例程序演示了如何打开或创建一个名为 `example.db` 的数据库,创建一个名为 `users` 的表,并将数据插入到该表中。然后,程序查询 `users` 表并输出结果。最后,程序关闭数据库连接。
阅读全文