Qt 数据库使用方法

目录:

         一、相关类介绍

         二、调用流程及范例

         三、常用SQL语句介绍

         四、启用事务保证数据库的一致性

一、相关类介绍

        1.数据库构成:数据库文件=N个数据表(类似Excel)构成;数据表=若干列(行)构成,一             列(行)设定为一个属性;

        2.QSqlDatabase类:负责数据库底层驱动选取,数据库文件的创建,删除,关闭,链接。

        3.QSqlQuery:负责数据表的创建,删除,行列数据的插入,修改,删除,查询

 二、调用流程及范例

        1.数据库文件的创建和链接:

    bool bExist = QFile::exists("my.db");                                           //判断数据库文件是否存在
    m_dataBase = QSqlDatabase::addDatabase("QSQLITE","123");       //选择数据库驱动为SqlLite;"123"为数据链接别名,通过QSqlDatabase::database函数获取m_dataBase 数据库对象,可默认为空。
    m_dataBase.setDatabaseName("my.db");      //my.db 数据库文件名
    m_dataBase.setUserName("user");                //访问数据库用户名
    m_dataBase.setPassword("123456");            //访问数据库密码
    m_dataBase.open();          //数据文件存在时,打开文件;文件不存在则创建文件并打开文件。
    2.数据表创建及行列数据的增删改查:

  QSqlQuery query(m_dataBase)   //创建SQL对象并与数据库文件关联

 query.exec("SQL语句")      //对数据库执行 SQL语句,数据表操作参考SQL语句介绍。

 while(query.next() ){

       query.value(0).toString();  //获取查询属性数组的第一个属性值并转换为字符串。

}         //query.next() 指针向后移动一行,使指针刚好处于查询位置处。exec执行后指针停止在查询位置前一行。 查询到的数据队列存放在query对象中,使用query.next() 可遍历队列中数据。

三、常用SQL语句介绍:

            创建数据表并定义属性列:create table test (学号 int primary key,姓名 varchar(20),性别 varchar(4),年龄 int)。test为数据表名称,学号,姓名,性别,年龄为属性。int 为整形,varchar(20)为最大为20字节的字符串。primary key为主键,表示属性值不能重复,上语句中表示学号属性为主键,学号值不能重复。

            插入数据:insert into test values(2012,'张三','男',20) 。test 为数据表名称,学号=2012,姓名=张三,性别=男,年龄=20。

            删除数据:delete from test where 学号=2012 。删除test数据表学号为2012的行数据。

            修改数据:update test set 年龄 =21 where 性别=男 and 姓名=张三。test数据表姓名=张三,性别=男所在行,年龄属性修改为21

            查询数据:select 姓名,年龄  from test where where 年龄>50 or 年龄=<10。查询test数据表的姓名和年龄属性。查询条件:年龄大于50或者年龄小于10的姓名。query.value(0)等于姓名属性,query.value(1)等于年龄属性。

        注意:字符串要用' '修饰

四、启用事务保证数据库的一致性

          启用事务:m_dataBase.transaction();

          提交数据至数据库:m_dataBase.commit();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值