当前位置: 首页 > news >正文

sqlite数据库操作

第一章 基础知识

        数据库用来存储和管理数据,数据库是用于对数据进行存储和管理的专门软件,使得管理的数据更加安全,方便和高效。数据库对数据管理往往是通过表(table)来实现的

1. 常见的数据库

大型数据库(大型机) ------------ Oracle(亿级)

中型数据库(分布式超大型) ------- mysql(百万级....)

轻型数据库(嵌入式设备) ------ sqlite(万级) 也是一个轻量级关系型数据库

第二章 配置环境

1. windows下载

https://www.sqlite.org/2024/sqlite-dll-win-x64-3450300.zip

 https://www.sqlite.org/2024/sqlite-tools-win-x64-3450300.zip

 

说明一下: 

  • 第一个是:安装dll,c语言操作它要用 
  • 第二个是:客户端工具

解压第二个压缩包

 

然后再配置环境变量 

 

2. 测试sqlite数据库

打开一个数据库:sqlite3 数据库文件名

 

 创建一张表:create table 表名(字段名1 类型,字段名2 类型 ....)

 

 添加一个数据:insert into 表名(列名) values(值)

 

查看数据: select * from 表名

 

 退出数据库:.quit

 

 

 3. 使用Navicat链接sqlite数据库

 第三章 QT操作sqlite-面向sql

        Qt环境继承了数据库访问的接口,也自带数据库sqlite,同时还提供了各种操作数据库的类,可以通过这些类来访问和操作数据库

1. QSqlDatabase数据库驱动类&&sql添加模块

QT += sql

 

2. addDatabase添加数据库驱动

 

addDatabase函数说明:

  • 第一个参数为:要传入数据库的类型,比如使用sqlite传入"QSQLITE"
  • 第二参数为:链接名,如果不传,会有个默认链接名
  • 返回值是:数据库类型对象

3. setDatabaseName设置数据库文件的路径

 setDatabaseName函数说明:

  • 传入数据库文件路径,必须添加数据库驱动后才能调用该函数  

 4. open打开数据库

 

5. exec发生sql请求

创建表 

    // 创建表QString createTableQuery ="CREATE TABLE IF NOT EXISTS t_student (""id INTEGER PRIMARY KEY AUTOINCREMENT, ""name TEXT NOT NULL, ""age INTEGER NOT NULL);";QSqlQuery query(database);// 指明一下数据库if(!query.exec(createTableQuery)){qDebug()<<"create table error!";}

 插入数据

    // 插入数据query.exec("insert into t_student(id,name,age) values(1,'zs',18)");query.exec("insert into t_student(id,name,age) values(2,'ls',19)");

查看表中数据

    query.exec("select * from t_student");while(query.next()){int id = query.value(0).toInt();QString name = query.value(1).toString();int age = query.value(2).toInt();qDebug()<< id << "--" << name << "--" << age;}

 说明一下:

  • QSqlQuery中的next表示提取一行数据
  • query.value(0)表示这行的第一个数据

6. close关闭数据库

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//1 加载驱动//可以用它操作mysql这些,但是现在是qsqliteQSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");//2 设置数据库文件名database.setDatabaseName("C:\\Users\\46285\\Desktop\\qt_code\\sqlite_db\\tmp_db");//3 打开数据库bool result = database.open();if(!result){qDebug()<<"open database error!";}// 创建表QString createTableQuery ="CREATE TABLE IF NOT EXISTS t_student (""id INTEGER PRIMARY KEY AUTOINCREMENT, ""name TEXT NOT NULL, ""age INTEGER NOT NULL);";QSqlQuery query(database);// 指明一下数据库if(!query.exec(createTableQuery)){qDebug()<<"create table error!";}// 插入数据query.exec("insert into t_student(id,name,age) values(1,'zs',18)");query.exec("insert into t_student(id,name,age) values(2,'ls',19)");// 查看数据query.exec("select * from t_student");//5 关闭数据库database.close();
}

 7. 防止sql注入漏洞

prepare函数 &&  addBindValue函数

http://www.xdnf.cn/news/330553.html

相关文章:

  • Qt开发:枚举的介绍和使用
  • 【Win】插入u盘/固态硬盘Hub不显示在我的电脑
  • ModuleNotFoundError: No module named ‘numpy.typing‘
  • oracle 优化器
  • 【DB2】DB2启动失败报错SQL1042C
  • 深入解析进程间通信与Socket原理:从理论到TypeScript实战
  • 一文详解极大似然估计,从极大似然估计的角度理解线性回归
  • 101alpha_第4个
  • Linux系统之Shell脚本:for、while循环及脚本实操
  • 优艾智合CEO张朝辉荣膺U45杰出青年企业家
  • 强化学习环境安装——openAI gym
  • Chain-of-Draft (CoD) 是提示工程的新王者
  • openstack的网络
  • 数据结构--树
  • 第十六次博客打卡
  • mindie近期报错总结
  • WordPress_depicter Sql注入漏洞复现(CVE-2025-2011)
  • LeetCode 267:回文排列 II —— Swift 解法全解析
  • 第一章:MySQL 索引基础
  • ZYNQ笔记(十八):VDMA VGA彩条显示
  • 软考错题(一)
  • 格式工厂:一站式多媒体文件转换专家
  • 全网通电视 1.0 | 支持安卓4系统的直播软件,提供众多港台高清频道
  • 深入理解 Pinia:从基础到进阶的完整指南
  • 从交互说明文档,到页面流程图设计全过程
  • bpftrace 中使用 bpf_trace_printk
  • Soft Mask(软遮罩)技术
  • 【多线程】用阻塞队列实现等待唤醒机制(Java实现)
  • Python中的global与nonlocal关键字详解
  • 【软件测试学习day6】WebDriver常用的API