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] --- 条件表达式

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

    关注

    5073

    文章

    19038

    浏览量

    303586
  • 数据库
    +关注

    关注

    7

    文章

    3769

    浏览量

    64292
  • MySQL
    +关注

    关注

    1

    文章

    802

    浏览量

    26456
收藏 人收藏

    评论

    相关推荐

    数据库系统是什么?数据库系统概念数据库设计资料免费下载

      什么是概念结构设计1.将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计2.概念结构是各种
    发表于 09-07 14:34 1次下载
    <b class='flag-5'>数据库</b>系统是什么?<b class='flag-5'>数据库</b>系统概念<b class='flag-5'>之</b><b class='flag-5'>数据库</b>设计资料免费下载

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

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

    如何使用PowerDesigner进行数据库静态结构设计?详细资料概述

    把用户需求抽象为概念模型即为概念结构设计。 概念模型除了要求能反映客观世界并且易于理解外,还要求其易于向数据模型(如关系模型)转化。 概念模型独立于具体的数据库系统,是整个数据库
    发表于 09-13 17:05 0次下载
    如何使用PowerDesigner进行<b class='flag-5'>数据库</b>静态<b class='flag-5'>结构设计</b>?详细资料概述

    数据库静态结构如何设计?详细资料任务和方法说明

    任务:实现数据库设计新奥尔良方法中概念结构设计和逻辑结构设计
    发表于 09-27 15:32 1次下载
    <b class='flag-5'>数据库</b>静态<b class='flag-5'>结构</b>如何设计?详细资料任务和方法说明

    数据库教程之如何进行数据库设计

    本文档的主要内容详细介绍的是数据库教程之如何进行数据库设计内容包括了:1 数据库设计概述 ,2 数据库需求分析 ,3
    发表于 10-19 10:41 21次下载
    <b class='flag-5'>数据库</b>教程之如何进行<b class='flag-5'>数据库</b>设计

    数据库设计的七大知识点总结详细资料免费下载

    本文档的主要内容详细介绍的是数据库设计的七大知识点总结包括了:1 数据库设计概述2 需求分析3 概念结构设计4 逻辑结构设计5
    发表于 10-19 10:41 0次下载
    <b class='flag-5'>数据库</b>设计的七大知识点总结详细资料免费下载

    数据库学习入门资料如何进行数据库设计

    本文档的主要内容详细介绍的是数据库学习入门资料如何进行数据库设计主要内容包括了:数据库系统设计的1
    发表于 10-25 16:29 14次下载
    <b class='flag-5'>数据库</b><b class='flag-5'>学习</b>入门资料<b class='flag-5'>之</b>如何进行<b class='flag-5'>数据库</b>设计

    数据库学习入门资料数据库的概念结构详细资料概述

    什么是概念结构设计 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是各种数据模型的共同基础,它比
    发表于 10-25 16:29 0次下载
    <b class='flag-5'>数据库</b><b class='flag-5'>学习</b>入门资料<b class='flag-5'>之</b><b class='flag-5'>数据库</b>的概念<b class='flag-5'>结构</b>详细资料概述

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

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

    数据库的设计概念总结

    本文档的主要内容详细介绍的是数据库的设计概念总结主要内容包括了:1.数据库设计概述,2.需求分析,3.概念结构设计,4.逻辑结构设计,5.
    发表于 01-09 17:29 13次下载
    <b class='flag-5'>数据库</b>的设计概念总结

    数据库设计开发案例教程之数据库设计的资料介绍

    本文档的主要内容详细介绍的是数据库设计开发案例教程之数据库设计的资料介绍主要内容包括了:1 数据库设计概述,2 需求分析,3 概念结构设计
    发表于 01-11 11:20 17次下载
    <b class='flag-5'>数据库</b>设计开发案例教程之<b class='flag-5'>数据库</b>设计的资料介绍

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

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

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

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

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

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

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

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