Qt は MySQL データベースに接続し、Navicat で視覚的に操作します。

0. MySQL と Navicat をダウンロードする

後で使用するMySQLアカウントのパスワードを登録します。

1. Qtがサポートするデータベースドライバを確認する

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

2. Qt のビット数が MySQL のビット数に対応していることを確認します (32 ビットは 32 ビットに対応します)。

MySQL ドライバーの libmysql.dll ライブラリを、対応するデバッグ ディレクトリまたはリリース ディレクトリにコピーします。ここに画像の説明を挿入します
ここに画像の説明を挿入します

//添加一个数据库
    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 で 2 つの新しいテーブルを作成します。classinfo の Student テーブルとクラス情報テーブルを作成しました。クラス情報テーブルでは、主キーとして classID が設定され、型は int です。Student テーブルとクラスにフィールドが追加されます情報テーブルが追加されました。フィールド classID と名前は同じである必要はありません。区別しやすいように自分の習慣に従ってください。


学生の学生テーブル

ここに画像の説明を挿入します

Student テーブルに外部キーを挿入し、名前を自分で選択し、フィールドとして Student テーブルの classID を選択します。参照されるスキーマは現在のデータベースであり、参照される親テーブルは関連付けるメイン テーブルであり、参照されるスキーマは関連付けられるメイン テーブルです。フィールドは親テーブルです。テーブル内の特定のフィールドについては、削除および更新するときに CASCADE (カスケード モード) を選択します。親テーブルの関連フィールドが更新されると、スレーブ テーブルの対応するフィールドも更新されます。

外部キーを挿入するときは、マスター テーブルとスレーブ テーブルに関連付けられたフィールドが一致しているかどうかを注意深く確認する必要があります。たとえば、型、長さ、小数点、null 以外、および仮想は 1 つずつ一致する必要があります。そうでない場合は、エラーが発生します。報告され、外部キーを確立できません。

ここに画像の説明を挿入します
テーブルにデータを追加してから操作を実行します。
ここに画像の説明を挿入します

ここに画像の説明を挿入します

マスター テーブル内の関連するフィールド レコードを削除すると、スレーブ テーブル内のデータが更新されます。ここでは、classID の 1 のレコードを削除し、student テーブルを更新すると、classID のレコードも削除されていることがわかります。これが基本的なカスケード操作です。もちろん、複数のテーブルに関連付けることもできます。もう少し複雑です。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_52531759/article/details/130137285