QT学习日记17——Qt数据库

学习视频链接

2021新版QT图形框架编程开发(层层到肉)_C++图形用户界面开发框架_哔哩哔哩_bilibili QT学习日记17——Qt数据库https://www.bilibili.com/video/BV1Wf4y1Y7uh?p=19&spm_id_from=pageDriver&vd_source=0471cde1c644648fafd07b54e303c905 ; 2021-sqlite3数据库快速入门_哔哩哔哩_bilibili QT学习日记17——Qt数据库https://www.bilibili.com/video/BV1rf4y187oC?p=7&spm_id_from=pageDriver&vd_source=0471cde1c644648fafd07b54e303c905 ;

目录

一、数据库简介

1.1 概念

1.2 相关术语

1.3 常见的数据库

1.4 数据库操作语言 (SQL)

1.5 Sqlite 数据库

1.6 Sqlite 工作原理

1.7 Sqlite 主要特性

二、配置和安装

三、Sqlite 的操作指令

3.1 常用命令

3.2 操作指令

3.3 Sqlite 命令行程序 (SQL语句)

四、在 Qt 中使用 Sqlite 数据库

4.1 QSqlQuery 执行数据库操作的 SQL 语句

4.2 QSqlQueryModel 获取结果集

4.3 QSqlDatabase 建立 Qt 应用程序和数据库连接

4.4 搭建项目

4.5 生成槽函数、添加头文件、声明变量和函数

4.6 编写函数

一、数据库简介

1.1 概念

数据库是指以一定方式存储在一起,能为多个用户共享,具有尽可能小的冗余特性,是与应用
程序彼此独立的数据集合

1.2 相关术语

DB 数据库(database)

DBMS 数据库管理系统

DBA 数据库管理员

RDB 关系式数据库

1.3 常见的数据库

1、商业数据库

甲骨文 Oracle

微软的 Sqlserver

IBM 的 DB2

2、非商业数据库

Sun 公司的 Mysq|,2009 年 sun 公司被 Oracle 收购,所以 mysql 现在属于甲骨文旗下的产品

开源的 SQLite,轻量级嵌入式关系型数据库

1.4 数据库操作语言 (SQL)

1、SQL概念

SQL (Structured Query Language) 是一种针对数据库的结构化查询语言,用于实现数据库查询和程序设计,常用于关系数据库系统,实现数据存取、查询、更新等操作。

2、常用的 SQL 语句

数据操作语言 (DML) : SELECT、INSERT、DELETE、UPDATE

数据定义语言 (DDL) : CREATE TABLE

1.5 Sqlite 数据库

SQLite 是一个轻量级的开源数据库,源代码完全公开不受版权限制,实现了自给自足的、无服务器、零配置的 SQL 数据库引擎,也是最广泛使用关系式数据库

SQLite (www.sqlite.org) 提供 SQLite 的已编译版本和源程序

1.6 Sqlite 工作原理

SQLite 引擎不是程序与之通信的独立进程,而是以静态库或共享库的方式连接到程序中,而不同于客户 – 服务器数据库连接方式,所以主要的使用方法是在编程语言内的直接 API 调用,当前主流的编程语言,如 C/C+、java、 python 等都提供了 sqlite 操作的 API 接口

SQLite 在资源消耗、实时性和可操作性有着出色的表现,整个数据库 (定义、表、索引和数据本身) 都在宿主主机上存储在一个单一的文件中,通常 SQLite 的工作是在开始一个事务的时候锁定整个数据文件而实现

1.7 Sqlite 主要特性

SQLite 不需要一个单独的服务器进程或操作的系统 (无服务器的)

SQLite 可以不用配置,安装或管理十分简单

SQLite 数据库是存储在一个单一的跨平台的磁盘文件

SQLite 是非常小的,是轻量级的,完全配置时小于 400 KB,省略可选功能配置时小于 250 KB

SQLite 是自给自足的,开发者不需要任何外部的依赖

SQLite 支持 SQL92 标准的大多数查询语言的功能

SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问

二、配置和安装

Linux 可以看学习视频链接第一个链接中的安装方式

Windows 可以进入下载网址SQLite Download Page QT学习日记17——Qt数据库https://www.sqlite.org/download.html ;

下载对应的两个压缩包

QT学习日记17——Qt数据库

然后解压

QT学习日记17——Qt数据库

把这个文件夹配置到环境变量里面,就可以在任意的位置进入数据库管理系统里面

QT学习日记17——Qt数据库

三、Sqlite 的操作指令

3.1 常用命令

.database查看数据库的名字.table查看数据表的名字.schema查看数据表创建时信息.mode设置显示模式,如 tab/list/column/csv.nullvalue设置空白字段显示的字符串.header on显示数据表的表头

QT学习日记17——Qt数据库

QT学习日记17——Qt数据库

QT学习日记17——Qt数据库

QT学习日记17——Qt数据库

QT学习日记17——Qt数据库

QT学习日记17——Qt数据库

3.2 操作指令

1、SQLite 命令行界面可以输入两种指令,一种是自身配置和格式控制相关指令,这些指令以 . 开头,另一种是 SQL 指令,以 ; 结束

2、输入 .help 获取 . 指令的帮助,输入 .exit 或者 .quit 退出命令界面,回到系统控制终端

3.3 Sqlite 命令行程序 (SQL语句)

1、创建数据表

CREATE TABLE 表名(列名1 类型[约束], 列名2 类型[约束], …);

2、常用的类型

INT(整型)、 TEXT(字符串)、REAL(浮点数)

3、常用的约束

PRIMARYKEY (主键):表示该列数据唯一,可以加快数据访问

NOT NULL (非空):该列数据不能为空

实例

QT学习日记17——Qt数据库

4、删除数据表

DROP TABLE 表名;

注:慎用,数据表一旦删除里面数据也将随之消失.

实例

QT学习日记17——Qt数据库

5、向数据表中插入数据

INSERT INTO 表名(列名1, 列名2, …) VALUES(数值1, 数值2, …);

如果要为表中的所有列添加值,并且插入列的顺序和创建表的顺序相同,可以不需要在 Sqlite 查询中指定列名

INSERT INTO 表名 VALUES(数值1, 数值2, …);

插入数据实例

INSERT INTO company (id, name, age, salary) VALUES(10021, ‘小乔’, 24, 11000);

INSERT INTO company VALUES(10022, 大乔’, 29, ‘江西’, 13000);

6、从数据表删除数据

DELETE FROM 表名 WHERE 条件表达式;

注: 可以没有 WHERE 子句,但数据表的所有数据都将被删除

注: 如果有多个条件可以使用逻辑与 (and) 或逻辑或 (or) 连接

删除数据实例

DELETE FROM company WHERE id = 10029;

DELETE FROM company WHERE address = ‘成都’ and salary < 1000;

7、修改数据表中的数据

UPDATE 表名 SET 列名1 = 新数值, 列名2 = 新数值 … WHERE 条件表达式;

注: 可以没有 WHERE 子句,但数据表的所有数据都将被修改

注: “新数值” 可以是一个常数,也可以是一个表达式

修改数据实例

UPDATE company SET age = 45 WHERE id = 10011;

UPDATE company SET salary = salary + 2000 WHERE age >= 30 and age

Original: https://blog.csdn.net/HuanBianCheng27/article/details/125818590
Author: herb.dr
Title: QT学习日记17——Qt数据库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816240/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球