当前位置: 首页>编程语言>正文

qt获取MySQL数据绘制曲线 qt数据库查询语句

一. 使用Navicat工具操作数据库

工具下载地址:

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_SQL语句,第1张

有一个可连接使用的数据库 打开工具"navicat.exe"工具, 新建一个数据库连接

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_mysql_02,第2张

如:新建一个test连接鼠标双击即可连接数据库, 然后就可以在连接下新建数据库

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_mysql_03,第3张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_mysql_04,第4张

建完数据库, 开始新建表

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_mysql_05,第5张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt获取MySQL数据绘制曲线_06,第6张

在一个数据库连接中可以建多个表

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt获取MySQL数据绘制曲线_07,第7张

下面通过数据库语句来增加删除和修改数据库内容

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt获取MySQL数据绘制曲线_08,第8张

二. 数据库基本操作语句

1.修改数据库中一条内容:

UPDATE MANAGER_INFO SET PassWord = ‘222’,AuthorizationDateTime = ‘222’,Mobile = ‘222’ WHERE ManagerName='test111’

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_mysql_09,第9张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_mysql_10,第10张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt_11,第11张

2. 删除表中一条内容

DELETE FROM MANAGER_INFO WHERE ManagerName='test111’

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_数据库_12,第12张

3. 增加表中一条内容:

INSERT MANAGER_INFO (ManagerName,PassWord,AuthorizationDateTime,Mobile) VALUES (‘111’,‘111’,‘111’,‘111’)

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_SQL语句_13,第13张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt获取MySQL数据绘制曲线_14,第14张

4.查表:查找表MANAGER_INFO中的ManagerName这一列

SELECT ManagerName FROM MANAGER_INFO

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt_15,第15张

5. 或者查找一行信息:

select * from MANAGER_INFO where ManagerName=‘1111’ 其中 * 表明查询表中记录的所有字段

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt获取MySQL数据绘制曲线_16,第16张

6.按照条件查找信息

(1). SELECT * FROM USER_DEVICE order by Uid limit 1,5; 在第一条开始查找5条信息; 通过控制开始查找的地方,实现按页查找

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt获取MySQL数据绘制曲线_17,第17张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_qt_18,第18张

举例说明:

从第0条开始查找, 每10条一页 : SELECT * FROM USER_DEVICE order by Uid limit 010,10; 这是第一页的内容;
那么下一页的内容查找为 :SELECT * FROM USER_DEVICE order by Uid limit 1
10,10; 这是第二页内容

第三页内容查找: SELECT * FROM USER_DEVICE order by Uid limit 210,10;
数据库语句中不支持 "1
10"这样的操作,必须是具体的数据,这里只是总结说明下如何去查找一页内容(7) distinct 查找不重复记录;就是多个相同记录只算一条

如:Select distinct(UnitBuildingNum) From USER_DEVICE Where AreaInfo = 'ABCD’AND BuildingNum = ‘0’;

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_mysql_19,第19张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_数据库_20,第20张

再试一次

Select distinct(UnitBuildingNum) From USER_DEVICE Where AreaInfo = 'ABCD’AND BuildingNum = ‘1’;

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_SQL语句_21,第21张

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_数据库_22,第22张

三. QT程序中数据库语句操作

QT中类QSqlDatabase用于创建数据库连接;不要重复的创建连接
	类QSqlQuery用于SQL语句实现与数据库的交互

1. QT中连接上数据库只需把这条数据库语句通过字符串的形式发送给数据库即可----- 更新表
UPDATE MANAGER_INFO SET PassWord = ‘123456’ WHERE ManagerName=‘AA’
把表MANAGER_INFO中字段ManagerName为AA的密码字段改为123456

/***************************************************更新表SQL语句*********************************************************
UPDATE MANAGER_INFO SET ManagerName = 'qt',PassWord = 'qt' WHERE ManagerName='qq' AND PassWord = 'qq'
修改表 MANAGER_INFO 中的 ManagerName和PassWord字段为qt WHERE 条件是字段原始信息为 ManagerName='qq' AND PassWord = 'qq'
UPDATE MANAGER_INFO SET ManagerName = '111',PassWord = '111',Mobile='111' WHERE ManagerName='aaa'
修改表 MANAGER_INFO 中的 ManagerName和PassWord和Mobile字段为111 WHERE 条件是字段原始信息为 ManagerName='qq'
*****************************************************************************************************************/
//更新表 ManagerName 修改表中的数据
void QSqlTool:: UpdateMANAGER_INFO(QString ManagerName,QString PassWord, QString AuthorizationDateTime,QString Mobile,QString Adress, QString OldManagerName)
{
    if(!DB.isOpen())
    {
       OpenDatabase();
    }
    if(DB.isOpen())
    {
        QSqlQuery query;
        QString sql = tr("UPDATE MANAGER_INFO SET ManagerName = '%1',PassWord = '%2',AuthorizationDateTime = '%3',Mobile = '%4',Adress = '%5' WHERE ManagerName='%6'").arg(ManagerName).arg(PassWord).arg(AuthorizationDateTime).arg(Mobile).arg(Adress).arg(OldManagerName);//数据库语句拼接
        query.exec(sql);//执行此数据库语句
    }
    else
    {
        qDebug() << "opened error";
    }
}

2. 查找表MANAGER_INFO 中的某个字段,然后返回这个字段的全部内容

SELECT ManagerName FROM MANAGER_INFO 查找表MANAGER_INFO中字段ManagerName的全部内容

/*************  查表:SELECT ManagerName FROM MANAGER_INFO  ****************/
QStringList QSqlTool:: SelectMANAGER_INFO_Name()//查询注册的用户
{
    //QString name;
    QStringList namelist;//储存所有名字
    if(!DB.isOpen())
    {
       OpenDatabase();
    }
    if(DB.isOpen())
    {
        QSqlQuery query("SELECT ManagerName FROM MANAGER_INFO");//查找表MANAGER_INFO中的ManagerName这一列   SELECT ManagerName FROM MANAGER_INFO
       while(query.next())//query指向下一条记录,每执行一次该函数,便指向相邻的下一条记录。
       {//QStringList    QList<QString>
       	     //1. 过度下在追加到namelist中
            //name = query.value(0).toString();//查询表MANAGER_INFO字段
            // namelist<<name;//把获取的名字追加到字符串链表中
            //2. 直接追加到namelist中
            namelist<<query.value(0).toString();//查询表MANAGER_INFO字段
           
           // qDebug()<<"namelist="<<namelist;
       }
       return namelist;
    }
    else
    {
        qDebug() << "opened error";
    }
}

3. 增加表MANAGER_INFO一条内容:
INSERT MANAGER_INFO (ManagerName,PassWord,AuthorizationDateTime,Mobile,Adress) VALUES (‘A’,‘A’,‘A’,‘A’,‘A’)
增加这5个字段内容依次全部为A

/*向表MANAGER_INFO中添加一条内容*/
void QSqlTool:: InsertAddrMANAGER_INFO(QString ManagerName,QString PassWord, QString AuthorizationDateTime,QString Mobile,QString Adress)
{
    if(!DB.isOpen())
    {
       OpenDatabase();
    }
    if(DB.isOpen())
    {
        QSqlQuery query;
        QString sql = tr("INSERT MANAGER_INFO (ManagerName,PassWord,AuthorizationDateTime,Mobile,Adress) VALUES ('%1','%2','%3','%4','%5')").arg(ManagerName).arg(PassWord).arg(AuthorizationDateTime).arg(Mobile).arg(Adress);//组织数据库执行语句
        query.exec(sql);//执行sql语句
    }
    else
    {
        qDebug() << "opened error";
    }

}

4. 删除MANAGER_INFO表中一条内容:
DELETE FROM MANAGER_INFO WHERE ManagerName=‘A’ 删除表MANAGER_INFO中字段ManagerName中为A 的这条内容

void QSqlTool::DeleteManagerName(QString ManagerName)
{
    if(!DB.isOpen())
    {
       OpenDatabase();
    }
    if(DB.isOpen())
    {
        QSqlQuery query;
        QString sql = tr("DELETE FROM MANAGER_INFO WHERE ManagerName='%1'").arg(ManagerName);
        query.exec(sql);
    }
    else
    {
        qDebug() << "opened error";
    }
}

5. 连接数据库:

//数据库打开接口---连接数据库  
#define SqlHostName			 "127.0.0.1"
#define SqlPort  				3306
#define SqlDatabaseName 		"database"
#define SqlUserName 			 "admin"
#define SqlPassword  		 	"123456"
void QSqlTool::OpenDatabase()//测试数据库链接状态
{
    DB = QSqlDatabase::addDatabase("QMYSQL");
    DB.setHostName(SqlHostName);//安装mysql服务器的ip
    DB.setPort(SqlPort);//数据库端口默认3306
    DB.setDatabaseName(SqlDatabaseName);//数据库的名字
    DB.setUserName(SqlUserName);//数据库的用户名
    DB.setPassword(SqlPassword);//数据库用户名的密码
    if(DB.open())      	  qDebug() << SqlDatabaseName  " opened successful";
    else      		 	  qDebug() << "opened error";
}
**6. 关闭数据库的连接**
void QSqlTool::CloseDatabase()
{
    if(DB.open())
    {
        DB.close();
    }
}

注意地方:删除时区分大小写

qt获取MySQL数据绘制曲线 qt数据库查询语句,qt获取MySQL数据绘制曲线 qt数据库查询语句_SQL语句_23,第23张



https://www.xamrdz.com/lan/5i71962458.html

相关文章: