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 のレコードも削除されていることがわかります。これが基本的なカスケード操作です。もちろん、複数のテーブルに関連付けることもできます。もう少し複雑です。