设为首页 加入收藏

TOP

42.QT-QSqlQuery类操作SQLite数据库(创建、查询、删除、修改)详解(二)
2019-05-25 12:12:58 】 浏览:225
Tags:42.QT-QSqlQuery 操作 SQLite 数据库 创建 查询 删除 修改 详解
.bindValue(
":score", (qrand() % 101)); //成绩 query.bindValue(":class", clases[qrand()%clases.length()] ); //班级 query.exec(); //加入库中 }

运行后,通过SQLite工具打开students.dat,如下图所示:

 

 

6.查询表内容

我们对上图生成的students.dat文件进行查询内容时,则需要使用WHERE 关键字实现.

示例-查询成绩值为60~80之间的学生:

    query.exec("SELECT * FROM students WHERE score >= 60 AND score <= 80;");
    while(query.next())
    {
        QString id = query.value(0).toString();
        QString name = query.value(1).toString();
        QString score = query.value(2).toString();
        QString classs = query.value(3).toString();

        qDebug()<<id<<name<<score<<classs;
    }

运行打印:

 

当然还有其它语句,比如:

"SELECT * FROM students WHERE score >= 80 OR class == '初3-3班';"
       //判断成绩大于等于80,或者班级为初3-3班的

打印如下图所示:

 

 "SELECT * FROM students WHERE class GLOB '*3-3*';"
            // GLOB表示通配符,匹配班级带有"3-3"的名字

打印如下图所示:

 

 

7.删表内容

删表内容有3个语句:

  • DROP:          用来删除整表,并且连表结构也会删除,删除后则只能使用CREATE TABLE来重新创建表
  • TRUNCATE:   在SQLite中没有该语句,在MySQL中有该语句,用来清楚表内数据,但是表结构不会删除.
  • DELETE:      删除部分记录,并且表结构不会删除,删除的速度比上面两个语句慢,可以配合WHERE来删除指定的某行

示例1

query.exec("DELETE FROM students");           //删除students表里所有内容

删除后如下图所示:

 

示例2-删除id=3的一行

query.exec("DELETE FROM students WHERE  id = 3");

删除前:

 

删除后:

 

 

8.改表内容

改表内容一般用下面两个语句:

  • UPDATE :      用来修改表中内容,可以通过WHERE语句来指定修改
  • ALTER  TABLE:  用来重命名表,或者在已有的表中添加新的一列

8.1 ALTER 示例

示例1

query.exec("ALTER TABLE students RENAME TO new_students");      //将students重命名为new_students

运行后如下图所示:

 

 

 示例2

query.exec("ALTER TABLE  new_students ADD COLUMN 结果 VARCHAR(10)");
//向 new_students表里添加新的一列,标题为结果,内容格式为VARCHAR

运行后如下图所示:

 

 

8.2 UPDATE 示例

示例1-不使用WHERE,直接修改某列

query.exec("UPDATE  new_students  SET score = 100 , name = '小A'");       
                  //修改score和name所在的列内容

修改后如下图所示:

 

 

示例2-使用WHERE,判断小于60的设为不合格,否则设为合格

query.exec("UPDATE  new_students  SET 结果='不合格'  WHERE  score<60 ");
query.exec("UPDATE  new_students  SET 结果='合格'  WHERE  score>=60 ");

修改前如下图所示:

 

修改后:

 

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[HNOI2012]矿场搭建 (点双连通) 下一篇C++中的自定义内存管理

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目