打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt中数据库使用总结2
树莓派中安装数据库splite3:

sudo apt-get install libsqlite3-dev

sudo apt-get install sqlite3
​一:首先需要在Qt的工程文件(.pro)中添加QT += sql,导入数据库;

二:判断数据库是否连接、创建数据库
​1,QSqlDatabase::contains("systemLogConnect")); //判断你该数据库中是否有该连接,
​ myDb=QSqlDatabase::database("systemLogConnect"); //得到该数据库,导出存在连接的数据库
​2,创建数据
​(1):myDb=QSqlDatabase::addDatabase("QSQLITE","systemLogConnect"); //创建系统日志的连接
​(2):为数据库设置名称(路径)、用户名(可选项)、密码(可选项)
​myDb.setDatabaseName("systemlog.db"); //设置数据库的名称,

​实例如下:
​ QSqlDatabase myDb;//定义一个数据库
​ //判断系统中是否有该数据库连接,如果有该数据库的话,会默认打开
if(QSqlDatabase::contains("systemLogConnect"))
{
myDb=QSqlDatabase::database("systemLogConnect"); //得到该数据库
qDebug()<"get database="">
}
else //没有该数据库连接,则创建改数据库连接
{
myDb=QSqlDatabase::addDatabase("QSQLITE","systemLogConnect"); //创建系统日志的连接
myDb.setDatabaseName("systemlog.db"); //设置数据库的名称
qDebug()<"create database="">
}
三:打开数据库,使用open方法
​ myDb.open(); //打开成功返回true,失败返回false;
​ myDb.close(); //关闭数据库
四:查询数据库中是否有某张表
​"select * from sqlite_master where type = 'table' and name = 'systemlog'"; //判断数据库中是否存在该表
sqlite_master是系统中维护的一张表,上例中查询该数据库中是否有​systemlog表
五:数据库的操作使用QSqlQuery
​QSqlQuery operateMyDb(myDb); //操作数据库,注意必须要设置数据库的名称,很容易失败,特别注意:定义该变量时最好加上数据库的名称(路径最好使用绝对路径,相对路径容易出错),否则数据库可能无法操作
QSqlQuery operateMyDb(myDb); //操作数据库,注意必须要设置数据库的名称,否则和你容易失败
​//查询该表是否存在
isHasThisTable="select * from sqlite_master where type = 'table' and name = 'systemlog'"; //判断数据库中是否存在该表
operateMyDb.prepare(isHasThisTable);
operateMyDb.exec();

六:创建一个表(注意如果该表已经创建,则会创建失败,所以必须判断该表是否创建)create table 表名(表头)

​ //首先打开数据库
if(!myDb.open())
{
qDebug()<"open database="" error!=""> }
else //打开成功
{
//数据库的操作
QSqlQuery operateMyDb(myDb); //操作数据库,注意必须要设置数据库的名称,否则和你容易失败
isHasThisTable="select * from sqlite_master where type = 'table' and name = 'systemlog'"; //判断数据库中是否存在该表
operateMyDb.prepare(isHasThisTable);
if(0)
{//有该表
qDebug()<"this table="">
}
else
{//没有表
//创建一个表 时间和类型
creatTable="create table systemlog(errorDate,errorTime,errorType,errorStatus);";
operateMyDb.prepare(creatTable);
if(operateMyDb.exec())
{
qDebug()<"creat table="">
}
else
{
qDebug()<"creat table="" failed!=""><>
}

}

}
myDb.close(); //关闭数据库
七:插入数据 insert into systemlog values(表头);
​insertData="insert into systemlog values(?,?,\"recycle\",0);"; //插入数据的指令,根据表的内容灵活更改
QSqlQuery operateMyDb(myDb); //操作数据库,注意必须要设置数据库的名称,否则和你容易失败
operateMyDb.prepare(insertData); //准备好数据
operateMyDb.bindValue(0,QDate::currentDate().toString("Mdd").toInt());//绑定对应的数据
operateMyDb.bindValue(1,QTime::currentTime().toString("hh:mm"));
operateMyDb.exec(); //执行插入数据的指令
八:按照某个字段查找数据 select * from table where 字段=值
​selectData="select * from systemLog where errorDate="; //根据errorDate字段查找数据
selectData.append(date);
selectData.append(";");
operateMyDb.prepare(selectData); //准备好指令
qDebug()<>
if(!operateMyDb.exec()) //查询数据失败
{
qDebug()<>
}
else
{
while(operateMyDb.next())
{
//打印出查找到的数据内容
qDebug()<><"><><"=""><><> }
}
九:删除某个数据 delete from systemLog where 字段=条件
​ deleteData="delete from systemLog where errorDate<";>
deleteData.append(date);
//首先打开数据库
if(!myDb.open())
{
qDebug()<"open database="" error!=""> }
QSqlQuery operateMyDb(myDb); //操作数据库,注意必须要设置数据库的名称,否则和你容易失败
operateMyDb.prepare(deleteData);
operateMyDb.exec();
myDb.close();
​十:查找数据库中的数据量
​1,查询数据库中所有的表的表头:select * from sqlite_master where type='table' order by name;<">


​2,查询数据库中的所有数据总量:select count (*) from systemLog; //systemLog需要查询的表名
十:命令行常用操作指令

1,打开数据库:sqlite3 test.db;

2,查看所有表的语句(显示表的字段):select * from sqlite_master;

3,查看某表中的所有数据:select * from table;table指的是某个表

4,删除某个条件的数据:delete from systemLog where 字段=条件

5,查找某个条件的数据:select * from table where 字段=值

6,多条件查询:逻辑运算:and,or,not

7,注意:字符串要加引号"",否则找不到。例如查询字符串的写法:

selectData="select * from systemLog where errorType=\"str\"";

8,比较运算符:

  • 等于: =
  • 大于: >
  • 大于等于: >=
  • 小于:
  • 小于等于: <>
  • 不等于: != 或 <>

注:数据库的常用操作指令
https://www.jb51.net/article/44545.htm

参考教程:http://www.runoob.com/sqlite/sqlite-tutorial.html

参考:https://blog.csdn.net/wpb74521wrf/article/details/80466929

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
QT连接SQL Server(ODBC)
在Qt中使用SQLite数据库
sqlit3常用命令
linux下 qt5 链接Mysql
QT在vs环境下操作数据库由www.ylyp.net提供
sqlite常量的定义
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服