Qt系列之数据库(三)补充篇

一、数据库删除操作:

基本语法

DELETE FROM table_name
WHERE [condition];
DELETE FROM ---- 关键字
table_name ---- 表名
WHERE ---- 条件的关键字
[condition] --- 条件表达式`在这里插入代码片`

具体使用:

QString sqlDelete = QString("DELETE FROM staff where id = %1;").arg(id);

数据库更新操作:
基本语法:

UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];

UPDATE ---- 关键字
table_name ---- 表名
SET ----- 关键字
column1 = value1 ---- 要修改的字段名和所对应的值
WHERE ---- 条件的关键字
[condition] --- 条件表达式

二 、sqlite数据类型

在这里插入图片描述

三、 批量导入数据到数据库 ---- QSqlQuery

qt为了支持数据库的批量和占位符赋值的特征,自实现了对Oracle and ODBC占位符语法的支持。
Oracle的占位语法: :列名(字段名)
ODBC的占 位符语法:使用一个字符(?)
他们的基本使用语法如下:

  QSqlQuery query;
  query.prepare("INSERT INTO person (id, forename, surname) "
                "VALUES (:id, :forename, :surname)");
  query.bindValue(":id", 1001);
  query.bindValue(":forename", "Bart");
  query.bindValue(":surname", "Simpson");
  query.exec();
QSqlQuery query;
      query.prepare("INSERT INTO person (id, forename, surname) "
                    "VALUES (?, ?, ?)");
      query.bindValue(0, 1001);
      query.bindValue(1, "Bart");
      query.bindValue(2, "Simpson");
      query.exec();

具体的代码:

 database = QSqlDatabase::addDatabase("QSQLITE");
    database.setDatabaseName("school.db");

    if(!database.open())
    {
       qDebug() << "Error falied to open " <<database.lastError();
    }

    //把创建表的步骤使用图形化工具

    //批量导入数据,--- 准备好批量数据
    QStringList names;
    names<<"张三"<<"李四"<<"王五"<<"老李";
    QStringList classes;
    classes<<"一年级一班"<<"一年级二班"<<"一年级三班"<<"一年级四班";
    //使用动态数据来存放分数
    QVector<int> scores;
    scores.push_back(80);
    scores.push_back(85);
    scores.push_back(86);
    scores.push_back(90);

    //准备一条插入的sql语句
    QString sqlInsert = QString("insert into classgrade(name,class,score) "
                                "values(:name,:class,:score);");
    QSqlQuery query;
    query.prepare(sqlInsert);
    #if 0
    foreach(容器中存放的数据类型 变量名,容器的名字)
    {

    }
   #endif
    int i = 0;
    foreach(QString name,names)
    {
         query.bindValue(":name",name);
         query.bindValue(":class",classes[qrand() % classes.length()]);
         query.bindValue(":score",scores[i++]);
         query.exec();
    }

四、C语言下sqlite3源码下载和编译

4.1 下载源码
官网下载地址:https://www.sqlite.org/index.html
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在自己项目中,如果要使用数据库的接口,那么,只需要将源文件sqlite3.c和sqlite3.h拷贝到自己工程中。

4.2 编译数据库源码
在这里插入图片描述
应用sqlite3流程:
第一步:先编译源码,得到一个目标文件,比如:sqlite3
第二步:利用sqlite3文件来创建数据库,比如:sqlite3 test.db
在这里插入图片描述
第三步:利用sql语句来访问数据库

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值