qt sqlite创建表
时间: 2023-12-15 10:32:35 浏览: 187
sqlite可视化控件,仅支持查询(可模糊查询、分页),不可增删
以下是在Qt中连接SQLite数据库并创建用户表、心愿表、评论表的示例代码:
```cpp
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 连接SQLite数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.db");
if (!db.open()) {
qDebug() << "Failed to connect to database.";
return -1;
}
// 创建用户表
QSqlQuery query;
query.exec("CREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)");
// 创建心愿表
query.exec("CREATE TABLE wishes (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, content TEXT)");
query.exec("CREATE INDEX idx_wishes_user_id ON wishes (user_id)");
// 创建评论表
query.exec("CREATE TABLE comments (id INTEGER PRIMARY KEY AUTOINCREMENT, user_id INTEGER, wish_id INTEGER, content TEXT)");
query.exec("CREATE INDEX idx_comments_user_id ON comments (user_id)");
query.exec("CREATE INDEX idx_comments_wish_id ON comments (wish_id)");
qDebug() << "Tables created successfully.";
return a.exec();
}
```
这段代码首先使用`QSqlDatabase`类连接SQLite数据库,然后使用`QSqlQuery`类执行SQL语句来创建用户表、心愿表、评论表。其中,用户表包含id、name、age三个字段,心愿表包含id、user_id、content三个字段,评论表包含id、user_id、wish_id、content四个字段。在创建心愿表和评论表时,还创建了相应的索引以提高查询效率。
阅读全文