QT-sqlite创建表整体流程

本文详细介绍了在QT环境中,结合C++如何利用SQLite数据库进行表创建的完整流程,包括在.pro文件中添加SQL模块,建立数据库驱动,以及如何连接和打开数据库,最后讲解如何通过继承自定义类创建数据库表。
摘要由CSDN通过智能技术生成

一、数据库操作流程

1、在项目管理文件中(.pro文件)中添加数据模块

QT+=sql

2、连接和打开数据库

创建based.h数据库驱动文件

//basedb.h

#ifndef BASEDB_H
#define BASEDB_H
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#include <QSqlError>
class basedb
{
public:
    //数据库对象
    QSqlDatabase db;
    basedb();
    ~basedb();
};

#endif // BASEDB_H

//basedb.cpp
#include "basedb.h"

basedb::basedb()
{
    //加载sqlite数据库驱动
    db = QSqlDatabase::addDatabase("QSQLITE");
    //生成数据库文件
    db.setDatabaseName("form.db");
    //开启数据库
    db.open();
}

basedb::~basedb()
{

}

3、继承basedb.h创建表

//score.h

#ifndef SCORE_H
#define SCORE_H
#include "basedb.h"

class score:public basedb
{
public:
    int id;
    QString name;
    QString uclass;
    int math;
    int chinese;
    int English;
    int physics;
    int chemics;
    int biology;
Qt中使用SQLite进行数据库操作,通常会通过QSqlDatabase、QSqlQuery等类来建立和管理表。如果你想创建一个有层次结构的表,也就是包含关联表(如一对多或多对多的关系),你可以按照以下步骤进行: 1. **连接到SQLite数据库**: 首先,你需要创建一个`QSqlDatabase`实例并打开一个已存在的数据库,或者创建一个新的: ```cpp QSqlDatabase db; if (!db.open("path_to_your_database.sqlite")) { // 处理错误 } ``` 2. **设计表结构**: 设计主表和从属表。例如,假设有一个学生表(Students)和课程表(Courses),可以这样表示: - Students表(主键id) ```sql CREATE TABLE IF NOT EXISTS Students ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER ); ``` - Courses表(外键student_id关联Students表) ```sql CREATE TABLE IF NOT EXISTS Courses ( id INTEGER PRIMARY KEY, title TEXT NOT NULL, student_id INTEGER, FOREIGN KEY (student_id) REFERENCES Students(id) ); ``` 3. **创建关联表**: 对于多对多关系,比如学生选课,可能需要额外的中间表(如Enrollments): - Enrollments表 ```sql CREATE TABLE IF NOT EXISTS Enrollments ( student_id INTEGER, course_id INTEGER, FOREIGN KEY (student_id) REFERENCES Students(id), FOREIGN KEY (course_id) REFERENCES Courses(id) ); ``` 4. **使用QSqlQuery创建表**: 使用`QSqlQuery`构造SQL命令并执行以创建表。注意在实际应用中,推荐使用预处理语句(PreparedStatement)来防止SQL注入。 5. **插入数据**: 创建好表之后,就可以像往普通表里添加数据一样操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值