衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Qt學習筆記之數(shù)據(jù)庫結構設計1

jf_78858299 ? 來源:紛紜雜談 ? 作者:CY_CHEN ? 2023-02-17 11:25 ? 次閱讀

一、數(shù)據(jù)庫

1、數(shù)據(jù)庫概述

2、數(shù)據(jù)庫操作語句

二、Qt SQL簡介

1、 Qt SQL對數(shù)據(jù)庫支持

2、SQLite數(shù)據(jù)庫初識

3、 Qt SQL模塊數(shù)據(jù)庫類接口

**一、數(shù)據(jù)庫

**

1、概述

數(shù)據(jù)庫也是應用程序的重要部分,一個完整的應用程序幾乎都包含數(shù)據(jù)庫。

當前主流的數(shù)據(jù)庫有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。

Sqlite是一款輕型的數(shù)據(jù)庫,它的設計目標是嵌入式,方便我們使用。

2、數(shù)據(jù)庫操作語句

語句:

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對數(shù)據(jù)庫支持

在Qt中,Qt為SQL數(shù)據(jù)庫提供支持的基本模塊。Qt SQL的API分為不同的層:

·驅動層

·SQL API層

·用戶接口層

(1)驅動層

對于Qt是基于C++來實現(xiàn)的框架,該層主要包括QSqlDriver,QSqlDriverCreator,QSqlDriverCreatorBase,QSqlDriverPlugin,and QSqlResult。這一層提供了特定數(shù)據(jù)庫和SQL API層之間的底層橋梁。

(2)SQL API層

對于SQL API層提供了數(shù)據(jù)庫的訪問相關類,其中,QSqlDatabase類進行連接,QSqlQuery可以完成與數(shù)據(jù)庫的交互。除此之外,還提供了QSqlError,QSqlField,QSqlIndex,and SQqlRecord類。

(3)用戶接口層

用戶接口層的幾個類實現(xiàn)了將數(shù)據(jù)庫中的數(shù)據(jù)鏈接到窗口部件上,這些類是使用模型/視圖框架實現(xiàn)的,他們是更高層次的抽象,主要包括QSqlQueryModel,QSqlTableModel,and QSqlRelationTableModel。

2、SQLite數(shù)據(jù)庫初識

對于數(shù)據(jù)庫操作流程主要分為:

第一步:在項目管理文件(.pro)中,增加數(shù)據(jù)庫模塊

QT += core gui sql

第二步:查看Qt對數(shù)據(jù)庫的驅動的類型的支持

QStringList drivers = QSqlDatabase::drivers();//獲取到qt中所支持的數(shù)據(jù)庫驅動類型


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

第三步:連接和打開數(shù)據(jù)庫

db = QSqlDatabase::addDatabase("QSQLITE");  //QSQLITE----他來告訴系統(tǒng),連接的數(shù)據(jù)庫是sqlite3數(shù)據(jù)庫
                                                //連接成功,返回一個數(shù)據(jù)庫對象(QSqlDatabase)
    db.setDatabaseName("test.db");    //設置數(shù)據(jù)庫名,數(shù)據(jù)庫文件后綴為.db
    db.setUserName("admin");          //設置數(shù)據(jù)庫用戶名
    db.setPassword("admin");          //設置數(shù)據(jù)庫密碼
    //如果想要進一步操作數(shù)據(jù)庫,那么就必須進行數(shù)據(jù)庫打開操作
    if (!db.open())
    {
        qDebug()<<"Error failed to open" <<db.lastError();
        return false;
    }
    else
    {
        qDebug() << "open success";
    }

第四步:訪問數(shù)據(jù)庫

訪問數(shù)據(jù)庫的操作主要包括:

(1)創(chuàng)建表;

(2)向數(shù)據(jù)庫表中插入數(shù)據(jù);

(3)刪除數(shù)據(jù);

(4)更新數(shù)據(jù);

(5)查詢數(shù)據(jù)。

對于數(shù)據(jù)庫中的表,通常只需要創(chuàng)建一次,而其他的操作是可以重復。

(1)創(chuàng)建表

QSqlQuery query;//在創(chuàng)建該對象時,系統(tǒng)會自動完成跟數(shù)據(jù)庫的關聯(lián)
//定義一個創(chuàng)建表的sql語句    表名:staff    表中的字段:id    name    age
QString sqlCreate = "create table staff(id integer primary key autoincrement,"
                        "name varchar(20),"
                        "age int);";
query.exec(sqlCreate);

使用圖形化工具查看的程序結果:

圖片

(2)向數(shù)據(jù)庫表中插入數(shù)據(jù)

插入操作語法:

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

INSERT INTO ------關鍵字

TABLE_NAME ------表名

VALUES -------關鍵字

插入數(shù)據(jù)操作實例:

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

(3)刪除數(shù)據(jù)

數(shù)據(jù)庫刪除操作:

基本語法:

DELETE FROM table_name WHERE [condition]

DELETE FROM ---- 關鍵字

table_name ---- 表名

WHERE ---- 條件的關鍵字

[condition] ---- 條件表達式

刪除數(shù)據(jù)操作實例

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

(4)更新數(shù)據(jù)

數(shù)據(jù)庫更新操作:

基本語法:

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

UPDATE ---- 關鍵字

Table_name ----表名

SET -----關鍵字

column1 = value1 ------- 要修改的字段名和所對應的值

WHERE ----- 條件的關鍵字

[condition] --- 條件表達式

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5094

    文章

    19178

    瀏覽量

    307732
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3848

    瀏覽量

    64691
  • MySQL
    +關注

    關注

    1

    文章

    829

    瀏覽量

    26745
收藏 人收藏

    評論

    相關推薦

    數(shù)據(jù)庫系統(tǒng)是什么?數(shù)據(jù)庫系統(tǒng)概念數(shù)據(jù)庫設計資料免費下載

      什么是概念結構設計1.將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計2.概念結構是各種
    發(fā)表于 09-07 14:34 ?1次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>系統(tǒng)是什么?<b class='flag-5'>數(shù)據(jù)庫</b>系統(tǒng)概念<b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b>設計資料免費下載

    如何進行數(shù)據(jù)庫設計?數(shù)據(jù)庫設計介紹和需求分析及結構設計資料概述

    數(shù)據(jù)庫設計的任務是指根據(jù)需求研制數(shù)據(jù)庫結構并應用 數(shù)據(jù)庫的過程。數(shù)據(jù)庫設計內容包括數(shù)據(jù)庫
    發(fā)表于 09-13 17:05 ?0次下載
    如何進行<b class='flag-5'>數(shù)據(jù)庫</b>設計?<b class='flag-5'>數(shù)據(jù)庫</b>設計介紹和需求分析及<b class='flag-5'>結構設計</b>資料概述

    如何使用PowerDesigner進行數(shù)據(jù)庫靜態(tài)結構設計?詳細資料概述

    把用戶需求抽象為概念模型即為概念結構設計。 概念模型除了要求能反映客觀世界并且易于理解外,還要求其易于向數(shù)據(jù)模型(如關系模型)轉化。 概念模型獨立于具體的數(shù)據(jù)庫系統(tǒng),是整個數(shù)據(jù)庫
    發(fā)表于 09-13 17:05 ?0次下載
    如何使用PowerDesigner進行<b class='flag-5'>數(shù)據(jù)庫</b>靜態(tài)<b class='flag-5'>結構設計</b>?詳細資料概述

    數(shù)據(jù)庫靜態(tài)結構如何設計?詳細資料任務和方法說明

    任務:實現(xiàn)數(shù)據(jù)庫設計新奧爾良方法中概念結構設計和邏輯結構設計
    發(fā)表于 09-27 15:32 ?1次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>靜態(tài)<b class='flag-5'>結構</b>如何設計?詳細資料任務和方法說明

    數(shù)據(jù)庫教程之如何進行數(shù)據(jù)庫設計

    本文檔的主要內容詳細介紹的是數(shù)據(jù)庫教程之如何進行數(shù)據(jù)庫設計內容包括了:1 數(shù)據(jù)庫設計概述 ,2 數(shù)據(jù)庫需求分析 ,3
    發(fā)表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>教程之如何進行<b class='flag-5'>數(shù)據(jù)庫</b>設計

    數(shù)據(jù)庫設計的七大知識點總結詳細資料免費下載

    本文檔的主要內容詳細介紹的是數(shù)據(jù)庫設計的七大知識點總結包括了:1 數(shù)據(jù)庫設計概述2 需求分析3 概念結構設計4 邏輯結構設計5
    發(fā)表于 10-19 10:41 ?0次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>設計的七大知識點總結詳細資料免費下載

    數(shù)據(jù)庫學習入門資料如何進行數(shù)據(jù)庫設計

    本文檔的主要內容詳細介紹的是數(shù)據(jù)庫學習入門資料如何進行數(shù)據(jù)庫設計主要內容包括了:數(shù)據(jù)庫系統(tǒng)設計的1
    發(fā)表于 10-25 16:29 ?14次下載
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>學習</b>入門資料<b class='flag-5'>之</b>如何進行<b class='flag-5'>數(shù)據(jù)庫</b>設計

    數(shù)據(jù)庫學習入門資料數(shù)據(jù)庫的概念結構詳細資料概述

    什么是概念結構設計 將需求分析得到的用戶需求抽象為信息結構即概念模型的過程就是概念結構設計 概念結構是各種數(shù)據(jù)模型的共同基礎,它比
    發(fā)表于 10-25 16:29 ?0次下載
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>學習</b>入門資料<b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b>的概念<b class='flag-5'>結構</b>詳細資料概述

    數(shù)據(jù)庫概念結構是如何設計的概念結構設計資料概述

    本文檔的主要內容詳細介紹的是數(shù)據(jù)庫概念結構是如何設計的概念結構設計資料概述主要內容包括了:1 概念結構2 概念
    發(fā)表于 10-26 11:49 ?22次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>概念<b class='flag-5'>結構</b>是如何設計的概念<b class='flag-5'>結構設計</b>資料概述

    數(shù)據(jù)庫的設計概念總結

    本文檔的主要內容詳細介紹的是數(shù)據(jù)庫的設計概念總結主要內容包括了:1.數(shù)據(jù)庫設計概述,2.需求分析,3.概念結構設計,4.邏輯結構設計,5.
    發(fā)表于 01-09 17:29 ?13次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>的設計概念總結

    數(shù)據(jù)庫設計開發(fā)案例教程之數(shù)據(jù)庫設計的資料介紹

    本文檔的主要內容詳細介紹的是數(shù)據(jù)庫設計開發(fā)案例教程之數(shù)據(jù)庫設計的資料介紹主要內容包括了:1 數(shù)據(jù)庫設計概述,2 需求分析,3 概念結構設計
    發(fā)表于 01-11 11:20 ?17次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>設計開發(fā)案例教程之<b class='flag-5'>數(shù)據(jù)庫</b>設計的資料介紹

    Qt學習筆記數(shù)據(jù)庫結構設計2

    數(shù)據(jù)庫也是應用程序的重要部分,一個完整的應用程序幾乎都包含數(shù)據(jù)庫。 當前主流的數(shù)據(jù)庫有DB2、MYSQL、OCI、ODBC、SQLITE、TDS、Oracle。 Sqlite是一款輕型的
    的頭像 發(fā)表于 02-17 11:25 ?575次閱讀
    <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'>數(shù)據(jù)庫</b><b class='flag-5'>結構設計</b>2

    Qt學習筆記數(shù)據(jù)庫結構設計5

    Qt中,Qt為SQL數(shù)據(jù)庫提供支持的基本模塊。Qt SQL的API分為不同的層: ·驅動層 ·SQL API層 ·用戶接口層
    的頭像 發(fā)表于 02-17 13:56 ?836次閱讀
    <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'>數(shù)據(jù)庫</b><b class='flag-5'>結構設計</b>5

    Qt學習筆記數(shù)據(jù)庫結構設計6

    Qt中,Qt為SQL數(shù)據(jù)庫提供支持的基本模塊。Qt SQL的API分為不同的層: ·驅動層 ·SQL API層 ·用戶接口層
    的頭像 發(fā)表于 02-17 13:57 ?559次閱讀
    <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'>數(shù)據(jù)庫</b><b class='flag-5'>結構設計</b>6

    Qt學習筆記數(shù)據(jù)庫結構設計7

    Qt中,Qt為SQL數(shù)據(jù)庫提供支持的基本模塊。Qt SQL的API分為不同的層: ·驅動層 ·SQL API層 ·用戶接口層
    的頭像 發(fā)表于 02-17 13:57 ?566次閱讀
    <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'>數(shù)據(jù)庫</b><b class='flag-5'>結構設計</b>7
    大集汇百家乐官网的玩法技巧和规则| 百家乐官网多少钱| 曼哈顿百家乐官网的玩法技巧和规则 | 百家乐官网翻天qvod粤语| 月亮城百家乐官网的玩法技巧和规则| 百家乐分析仪博彩正网| 大发888客服| 皇冠博彩网| 百家乐官网博娱乐网| 百家乐赌博是否违法| 德州扑克筹码| 百家乐官网三路秘诀| 百家乐真人游戏网上投注| 大发888客服电话多少| 德州扑克 盲注| 真人百家乐官网攻略| 塑料百家乐筹码| 大发888促销活动| 百家乐官网赢钱| 百家乐787| 百樂坊娱乐场| 百家乐官网规| 巴比伦百家乐娱乐城| 额敏县| 缅甸百家乐官网赌| 大发888破解| 百家乐官网赌博娱乐城| 澳门百家乐赌场娱乐网规则| 射洪县| 澳门百家乐心得玩博| 真人娱乐城开户送钱| 百家乐官网娱乐网址| 四方百家乐的玩法技巧和规则| 百家乐官网好不好玩| 百家乐群柏拉图软件| 黄大仙区| 大赢家足球比分| 好望角百家乐官网的玩法技巧和规则| 大发888com| 迪威百家乐官网赌场娱乐网规则| 大发888娱乐鸿博娱乐|