0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Qt学习笔记之数据库结构设计1

jf_78858299 来源:纷纭杂谈 作者:CY_CHEN 2023-02-17 11:25 次阅读

一、数据库

1、数据库概述

2、数据库操作语句

二、Qt SQL简介

1、 Qt SQL对数据库支持

2、SQLite数据库初识

3、 Qt SQL模块数据库类接口

**一、数据库

**

1、概述

数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。

当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。

Sqlite是一款轻型的数据库,它的设计目标是嵌入式,方便我们使用。

2、数据库操作语句

语句:

SELECT * FROM menu WHERE id>20

INSERT INTO menu VALUES(102, HELLO)

DELETE FROM menu WHERE name="wj"

UPDATE menu SET name="weijie"

二、Qt SQL简介

1、Qt SQL对数据库支持

在Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层:

·驱动层

·SQL API层

·用户接口层

(1)驱动层

对于Qt是基于C++来实现的框架,该层主要包括QSqlDriver,QSqlDriverCreator,QSqlDriverCreatorBase,QSqlDriverPlugin,and QSqlResult。这一层提供了特定数据库和SQL API层之间的底层桥梁。

(2)SQL API层

对于SQL API层提供了数据库的访问相关类,其中,QSqlDatabase类进行连接,QSqlQuery可以完成与数据库的交互。除此之外,还提供了QSqlError,QSqlField,QSqlIndex,and SQqlRecord类。

(3)用户接口层

用户接口层的几个类实现了将数据库中的数据链接到窗口部件上,这些类是使用模型/视图框架实现的,他们是更高层次的抽象,主要包括QSqlQueryModel,QSqlTableModel,and QSqlRelationTableModel。

2、SQLite数据库初识

对于数据库操作流程主要分为:

第一步:在项目管理文件(.pro)中,增加数据库模块

QT += core gui sql

第二步:查看Qt对数据库的驱动的类型的支持

QStringList drivers = QSqlDatabase::drivers();//获取到qt中所支持的数据库驱动类型


foreach(QString driver,drivers)
{
    qDebug() << driver;
}

第三步:连接和打开数据库

db = QSqlDatabase::addDatabase("QSQLITE");  //QSQLITE----他来告诉系统,连接的数据库是sqlite3数据库
                                                //连接成功,返回一个数据库对象(QSqlDatabase)
    db.setDatabaseName("test.db");    //设置数据库名,数据库文件后缀为.db
    db.setUserName("admin");          //设置数据库用户名
    db.setPassword("admin");          //设置数据库密码
    //如果想要进一步操作数据库,那么就必须进行数据库打开操作
    if (!db.open())
    {
        qDebug()<<"Error failed to open" <<db.lastError();
        return false;
    }
    else
    {
        qDebug() << "open success";
    }

第四步:访问数据库

访问数据库的操作主要包括:

(1)创建表;

(2)向数据库表中插入数据;

(3)删除数据;

(4)更新数据;

(5)查询数据。

对于数据库中的表,通常只需要创建一次,而其他的操作是可以重复。

(1)创建表

QSqlQuery query;//在创建该对象时,系统会自动完成跟数据库的关联
//定义一个创建表的sql语句    表名:staff    表中的字段:id    name    age
QString sqlCreate = "create table staff(id integer primary key autoincrement,"
                        "name varchar(20),"
                        "age int);";
query.exec(sqlCreate);

使用图形化工具查看的程序结果:

图片

(2)向数据库表中插入数据

插入操作语法:

INSERT INTO TABLE_NAME(column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN)

INSERT INTO ------关键字

TABLE_NAME ------表名

VALUES -------关键字

插入数据操作实例:

//插入操作
QString sqlInset = QString("insert into staff(name,age) values('张三',20);");
if(!query.exec(sqlInset))
{
    qDebug() << "insert data error" << db.lastError();
}

(3)删除数据

数据库删除操作:

基本语法:

DELETE FROM table_name WHERE [condition]

DELETE FROM ---- 关键字

table_name ---- 表名

WHERE ---- 条件的关键字

[condition] ---- 条件表达式

删除数据操作实例

//删除操作
QString sqlDelete = QString("DELETE FROM staff where id = 2;");
if(!query.exec(sqlDelete))
{
    qDebug() << "delete data error" << db.lastError();
}

(4)更新数据

数据库更新操作:

基本语法:

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

UPDATE ---- 关键字

Table_name ----表名

SET -----关键字

column1 = value1 ------- 要修改的字段名和所对应的值

WHERE ----- 条件的关键字

[condition] --- 条件表达式

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4984

    文章

    18300

    浏览量

    288669
  • 数据库
    +关注

    关注

    7

    文章

    3592

    浏览量

    63383
  • MySQL
    +关注

    关注

    1

    文章

    776

    浏览量

    26012
收藏 人收藏

    评论

    相关推荐

    操作系统结构设计

    操作系统结构设计   操作系统有多种实现方法与设计思路,下面仅选取最有代表性的三种做一简单的叙述。   1.整体式系统结构设计 这是最常用的一种组织方式,它常被誉为“大杂烩”,也可说,整体式系统
    发表于 09-13 10:10

    手机结构设计心得

    手机结构设计心得
    发表于 11-07 09:59

    浅谈产品结构设计特点 

    `  产品结构设计是根据产品功能而进行的内部结构的设计,是机械设计的主要内容之一。产品结构设计内容有零件的分件、部件的固定方式、产品使用和功能的实现方式、产品使用材料和表面处理工艺等。要求产品
    发表于 02-25 17:24

    软件结构设计

    软件结构设计,,
    发表于 09-26 13:55

    轴系结构设计实验

    实验六 轴系结构设计实验一、实验目的: 熟悉并掌握轴系结构设计中有关轴的结构设计、滚动轴承组合设计的基本方法。 二、实
    发表于 03-13 19:04 5.6w次阅读
    轴系<b class='flag-5'>结构设计</b>实验

    半替代护环的结构设计

    半替代护环的结构设计_张国喜
    发表于 01-07 16:52 0次下载

    如何进行数据库设计?数据库设计介绍和需求分析及结构设计资料概述

    数据库设计的任务是指根据需求研制数据库结构并应用 数据库的过程。数据库设计内容包括数据库
    发表于 09-13 17:05 0次下载
    如何进行<b class='flag-5'>数据库</b>设计?<b class='flag-5'>数据库</b>设计介绍和需求分析及<b class='flag-5'>结构设计</b>资料概述

    数据库概念结构是如何设计的概念结构设计资料概述

    本文档的主要内容详细介绍的是数据库概念结构是如何设计的概念结构设计资料概述主要内容包括了:1 概念结构2 概念结构设计的方法与步骤3
    发表于 10-26 11:49 22次下载
    <b class='flag-5'>数据库</b>概念<b class='flag-5'>结构</b>是如何设计的概念<b class='flag-5'>结构设计</b>资料概述

    O型圈密封结构设计

    O型圈密封结构设计
    发表于 02-10 15:56 16次下载

    Qt学习笔记数据库结构设计2

    数据库也是应用程序的重要部分,一个完整的应用程序几乎都包含数据库。 当前主流的数据库有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。 Sqlite是一款轻型的
    的头像 发表于 02-17 11:25 355次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>2

    Qt学习笔记数据库结构设计3

    首先布局好UI界面 布局好后,我们需要在ListWidget上显示很多内容,但是一个字符串列表不足以完成这个需求,或者能够完成效果也不是很好,所以需要创建一个新的UI页面自定义一个条目布局。
    的头像 发表于 02-17 11:27 511次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>3

    Qt学习笔记数据库结构设计4

    首先布局好UI界面 布局好后,我们需要在ListWidget上显示很多内容,但是一个字符串列表不足以完成这个需求,或者能够完成效果也不是很好,所以需要创建一个新的UI页面自定义一个条目布局。
    的头像 发表于 02-17 11:28 324次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>4

    Qt学习笔记数据库结构设计5

    Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层: ·驱动层 ·SQL API层 ·用户接口层
    的头像 发表于 02-17 13:56 552次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>5

    Qt学习笔记数据库结构设计6

    Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层: ·驱动层 ·SQL API层 ·用户接口层
    的头像 发表于 02-17 13:57 350次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>6

    Qt学习笔记数据库结构设计7

    Qt中,Qt为SQL数据库提供支持的基本模块。Qt SQL的API分为不同的层: ·驱动层 ·SQL API层 ·用户接口层
    的头像 发表于 02-17 13:57 360次阅读
    <b class='flag-5'>Qt</b><b class='flag-5'>学习</b><b class='flag-5'>笔记</b>之<b class='flag-5'>数据库</b><b class='flag-5'>结构设计</b>7