Qt连接MySQL数据库,用Navicat可视化进行操作

0.下载MySQL和Navicat

注册MySQL的账户密码,后面会用到的。

1.检查Qt支持的数据库驱动

qDebug()<<QSqlDatabase::drivers();

2.检查Qt的位数和MySQL的位数要对应,32位对应32位的

将MySQL的驱动libmysql.dll库复制一份到对应的debug目录或者release目录下在这里插入图片描述
在这里插入图片描述

//添加一个数据库
    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");    //括号内要写出数据库的类型
    //设置数据库
    db.setHostName("127.0.0.1"); //设置数据库的主机ip,localhost也可以
    //设置端口,mysql的端口默认是3306
    db.setPort(3306);
    //设置数据库的用户名
    db.setUserName("root");
    //设置数据库的密码
    db.setPassword("123456");    //这个就是安装MySQL时设置的密码
    //设置数据库的名字
    db.setDatabaseName("aaa2");
    //打开数据库(已经安装过mysql驱动了)
    if(db.open()==false){
    
    
        QMessageBox::warning(this,"waring",db.lastError().text());
    }
    else	QMessageBox::about(this,"success","数据库打开成功");

运行成功

在这里插入图片描述

主外键的级联操作

在Navicat中新建两张表,我建的是student的学生表和classinfo的班级信息表,在班级信息表中将classID设置为主键,类型为int,学生表中添加一个字段和班级信息表中的字段classID,名字不一定要相同,按自己的习惯来,方便区分就可以了。


student的学生表

在这里插入图片描述

在学生表中插入外键,名字自己取,字段选择学生表中的classID,被引用的模式就是你当前的数据库,被引用的父表就是你要关联的主表,被引用的字段就是父表中的某一个字段,删除时和更新时选择CASCADE(级联模式),当父表中关联的字段更新时从表中对应的字段也会更新。

在插入外键时,一定要仔细检查主表和从表中关联的字段是否匹配,比如说类型,长度,小数点,不是null,虚拟都要一一匹配,不然会报错,无法建立外键。

在这里插入图片描述
向表中添加一些数据后进行操作
在这里插入图片描述

在这里插入图片描述

删除主表中关联的字段记录后,从表中的数据会更新。这里我们删除了classID中1的记录,刷新student表中发现classID的记录也被删除了,这就是基础的级联操作,当然还可以关联多个表,可能会复杂一点。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_52531759/article/details/130137285