QT-Mysql-查询语句-查询是否有表-表列名-查询记录
1.是否有表
查询DBname=`pvfforecast` 中是否有表名为'forecast_power'的表
注意引号的用法
以下2种写法都可以。
SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name ='forecast_power';
SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema = 'pvfforecast' AND table_name ='forecast_power';
2.表列名
查询DBname=`pvfforecast` 中表名为'forecast_power'的表列名
SELECT COLUMN_NAME FROM information_schema.columns WHERE table_schema = 'pvfforecast' AND table_name ='theory_power' ORDER BY ORDINAL_POSITION;
3.查询记录
从数据库名为`pvfforecast`,表名为`forecast` 中查询时间不能写“=”要写“>=”
显示调用:`pvfforecast`.`forecast_weather`
SELECT * FROM `pvfforecast`.`forecast_weather` WHERE 'forecast_time' >='2025-04-28 00:00:00';
4.一次插入一条数据
QString sql=QString("INSERT INTO `theory_weather` (""`forecast_time`, `data_time`, `temperature`, `airpressure`, ""`humidity`, `winddirection`, `windspeed`, `rainfall`, ""`cloundcover`, `radiation`, `radiation_coe1`, `weather_coe1`, ""`model_coe1`, `inuse_capacity`, `scatter`, `radiation_fz`"") VALUES (""%1, %2, %3, %4, ""%5, %6, %7, %8, ""%9, %10, %11, %12, ""%13, %14, %15, %16"")").arg(forecastTimeStr, // 1dataTimeStr, // 2formatValue(temperature), // 3formatValue(airpressure), // 4formatValue(humidity), // 5formatValue(winddirection), // 6formatValue(windspeed), // 7formatValue(rainfall), // 8formatValue(cloundcover), // 9formatValue(radiation), // 10formatValue(radiationCoe1), // 11formatValue(weatherCoe1), // 12formatValue(modelCoe1), // 13formatValue(inuseCapacity), // 14formatValue(scatter), // 15formatValue(radiationFz) // 16);
5.一次插入多条数据
1.建立连接
2.开始事务
3.插入数据
4.批量插入
5.提交事务//1.检查数据库连接是否有效if (m_mysqldb.m_db.isOpen()){//2. 开始事务if (!m_mysqldb.m_db.transaction()){throw QString("Function:storeTheoryweather-start transaction fail: %1").arg(m_mysqldb.m_db.lastError().text());}//3.插入数据 m_mysqldb.m_query.prepare("INSERT INTO `theory_weather` ""(forecast_time, data_time, radiation,radiation_fz) ""VALUES (:forecast_time, :data_time, :radiation,:radiation_fz)");// 4.批量插入数据QString str;for (int i = 0; i < 960; i++){// 绑定参数m_mysqldb.m_query.bindValue(":forecast_time", forecastDatetime); m_mysqldb.m_query.bindValue(":data_time", dataDatetime);str= QString::number(m_radiationtheoryValues.at(i), 'f', 2);m_mysqldb.m_query.bindValue(":radiation", "100");//m_radiationtheoryValues.at(i));m_mysqldb.m_query.bindValue(":radiation_fz", "100");dataDatetime=dataDatetime.addSecs(15 * 60); if (!m_mysqldb.m_query.exec()){msg="----Error inserting row";msg+= QString("1%").arg(i);msg+=":";msg+=query.lastError().text();// qDebug() << "Error inserting row" << i << ":" << query.lastError().text();m_mysqldb.m_db.rollback(); // 回滚事务 return ;}}// 5.提交事务if (!m_mysqldb.m_db.commit()){msg =QString("---CSU_fmeteorandpower---committing error:: %1").arg(m_mysqldb.m_db.lastError().text()); throw QString("committing transaction:: %1").arg(m_mysqldb.m_db.lastError().text());}else{msg ="---storeTheoryweather-----successful!"; }