CC++Qt数据库SqlRelationalTable关联表详解


本文整理自网络,侵删。

在上一篇博文中详细介绍了SqlTableModle组件是如何使用的,本篇博文将介绍SqlRelationalTable关联表组件,该组件其实是SqlTableModle组件的扩展类,SqlRelationalTable组件可以关联某个主表中的外键,例如将主表中的某个字段与附加表中的特定字段相关联起来,QSqlRelation(关联表名,关联ID,名称)就是用来实现多表之间快速关联的。

首先我们创建两张表,一张Student表存储学生名字以及学生课程号,另一张Departments存储每个编号所对应的系所名称,运行代码完成创建。

void MainWindow::InitSQL()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("./lyshark.db");
    if (!db.open())
           return;

    // 执行SQL创建表
    db.exec("DROP TABLE Student");
    db.exec("CREATE TABLE Student ("
                   "id INTEGER PRIMARY KEY AUTOINCREMENT, "
                   "name VARCHAR(40) NOT NULL, "
                   "departID INTEGER NOT NULL)"
            );

    // 逐条插入数据
    db.exec("INSERT INTO Student(name,departID) VALUES('zhangsan',10)");
    db.exec("INSERT INTO Student(name,departID) VALUES('lisi',20)");
    db.exec("INSERT INTO Student(name,departID) VALUES('wangwu',30)");
    db.exec("INSERT INTO Student(name,departID) VALUES('wangmazi',40)");

    db.exec("DROP TABLE Departments");
    db.exec("CREATE TABLE Departments("
            "departID INTEGER NOT NULL,"
            "department VARCHAR(40) NOT NULL)"
            );

    db.exec("INSERT INTO Departments(departID,department) VALUES (10,'数学学院')");
    db.exec("INSERT INTO Departments(departID,department) VALUES (20,'物理学院')");
    db.exec("INSERT INTO Departments(departID,department) VALUES (30,'计算机学院')");
    
    db.commit();
    db.close();
}

初始化后将得到两张数据表,这两张表通过departID相关联,如下:

阅读剩余部分

相关阅读 >>

androidstudio数据存储建立Sqlite数据库实现增删查改

android基于Sqlite实现注册和登录功能

python的django框架可适配的各种数据库介绍

Sqlite数据库常用语句及mac上的Sqlite可视化工具meassqllite使用方法

svn 清理失败 (cleanup 失败) 的快速解决方法

navicat图形化界面之navicatpremium12安装与使用教程

基于java实现一个简单的单词本android app的实践

navicat for mysql 16怎么注册?navicat16全系列最新破解教程(附注册机)

Sqlite数据库管理相关命令的使用介绍

Sqlite3 top的查询及limit语法介绍

更多相关阅读请进入《Sqlite》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...