国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【MySQL】C語言連接數(shù)據(jù)庫

這篇具有很好參考價(jià)值的文章主要介紹了【MySQL】C語言連接數(shù)據(jù)庫。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、安裝 MySQL 庫

我們之前學(xué)習(xí)數(shù)據(jù)庫都是在 Linux 的 mysql 客戶端下以純命令行的方式操作的,但其實(shí),我們也可以使用 C/C++/Java/Python 等語言來連接數(shù)據(jù)庫,向 mysqld 下達(dá) sql 語句并獲取執(zhí)行結(jié)果。不過,在這之前,我們需要先安裝 MySQL 對(duì)應(yīng)的庫,這里我們以 C 語言連接數(shù)據(jù)庫為例。

關(guān)于 MySQL 的 C語言庫,我們可以直接到 MySQL 官網(wǎng)中去下載,然后 rz 上傳到 Linux 中解壓。當(dāng)然我們也可以通過 yum 來直接安裝 mysql client 以及 mysql devel,因?yàn)橹拔覀冊(cè)诎惭b mysql-commun-server 時(shí)已經(jīng)配置了 mysql 相關(guān)的 yum 源。(其實(shí)那時(shí)候 mysql client 我們也已經(jīng)安裝了)【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

安裝完畢后我們就可以在 /usr/include/mysql 目錄下找到 mysql 相關(guān)的頭文件了:【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

同時(shí),我們也可以在 /lib64/mysql/ 以及 /usr/lib64/mysql 目錄下找到 mysql 對(duì)應(yīng)的動(dòng)態(tài)庫以及靜態(tài)庫了:【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

驗(yàn)證引入是否成功

現(xiàn)在,我們就可以使用 mysql 目錄下頭文件中提供的相關(guān)函數(shù)來連接數(shù)據(jù)庫了。

不過,在正式連接數(shù)據(jù)庫之前,我們可以先通過 mysql_get_client_info() 函數(shù)來驗(yàn)證一下 mysql 相關(guān)頭文件以及動(dòng)態(tài)庫是否被成功引入:

函數(shù)原型:const char *mysql_get_client_info(void);
返回值: A character string that represents the MySQL client library version.
#include <iostream>
#include <mysql/mysql.h>
using namespace std;

int main()
{
    cout << "mysql version: " << mysql_get_client_info() << endl;
    return 0;
}

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

這里有幾個(gè)需要注意的地方:

  1. 由于我們要使用 mysql C庫中的函數(shù),所以在 test.cc 中我們需要包含 mysql 相關(guān)頭文件。
  2. 在程序編譯時(shí),我們需要使用 -l 選項(xiàng)來指定我們要鏈接的 mysql 動(dòng)態(tài)庫,并且動(dòng)態(tài)庫的庫名稱是去掉前綴 lib 以及后綴 .so 后的剩余部分。(libmysqlclient.so -> mysqlclient)
  3. 由于動(dòng)態(tài)庫在 /usr/lib64/mysql/ 目錄下,而系統(tǒng)的默認(rèn)庫路徑是 /usr/lib64/,所以我們還需要使用 -L 選項(xiàng)來指定動(dòng)態(tài)庫的路徑。
  4. mysql C語言相關(guān)頭文件在 /usr/include/mysql/ 目錄下,而系統(tǒng)默認(rèn)的頭文件搜索路徑是 /usr/include/,所以按道理來說,我們也是需要使用 -I 選項(xiàng)指明頭文件路徑的;但這里由于我們?cè)诰帉懺闯绦颍^文件時(shí)使用的是 mysql/mysql.h,而不僅僅是 mysql.h,所以不需要指定。
  5. 最后,關(guān)于動(dòng)靜態(tài)庫相關(guān)的知識(shí),我們其實(shí)以前在 Linux 系統(tǒng)編程中講過,有需要的同學(xué)可以再看一下 – 動(dòng)靜態(tài)庫。

二、MySQL C API 相關(guān)接口

1、C API 官方文檔

關(guān)于C語言連接數(shù)據(jù)所涉及到的各種數(shù)據(jù)結(jié)構(gòu)的介紹以及相關(guān)函數(shù)的使用其實(shí)在 MySQL C API 官方文檔中已經(jīng)給出了,我們可以通過它來快速了解并上手 MySQL C API。【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

2、初始化 MYSQL

要使用 MySQL C語言庫,需要先使用 mysql_init 函數(shù)完成對(duì) MYSQL 結(jié)構(gòu)體指針的初始化工作。

MYSQL *mysql_init(MYSQL *mysql)
  • 函數(shù)返回值:失敗返回 NULL。

注意:mysql_init 函數(shù)的參數(shù)以及返回值都是 MYSQL 指針類型,對(duì)于 MYSQL,大家把它類比到C語言中的文件指針來理解即可。MYSQL 和C語言文件 FILE 一樣,本質(zhì)上都是一個(gè)結(jié)構(gòu)體。【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

MYSQL *mfp = mysql_init(nullptr);
if(mfp == nullptr)
{
    cerr << "mysql init error" << endl;
    return 1;
}
cout << "mysql init success" << endl;

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

注意:這里用C語言的 NULL 還是C++的 nullptr 都可以,因?yàn)樗鼈冊(cè)跀?shù)值上都是0;區(qū)別在于在定義時(shí) NULL 是一個(gè)整數(shù),而 nullptr 則是被強(qiáng)轉(zhuǎn)為了 void* 類型。

3、連接 MySQL

初始化完畢后,我們需要使用 mysql_real_connect 函數(shù)來連接數(shù)據(jù)庫。

MYSQL *
mysql_real_connect(MYSQL *mysql,       // MYSQL結(jié)構(gòu)體指針對(duì)象
                   const char *host,   // mysqld服務(wù)進(jìn)程所在的主機(jī)
                   const char *user,   // 登錄MySQL的用戶
                   const char *passwd, // 用戶密碼
                   const char *db,     // 要訪問的數(shù)據(jù)庫
                   unsigned int port,  // mysqld服務(wù)進(jìn)程的端口號(hào)
                   const char *unix_socket,    // 默認(rèn)設(shè)為NULL即可
                   unsigned long client_flag)  // 默認(rèn)設(shè)為0即可
  • 函數(shù)返回值:失敗返回0,成功返回傳入的MYSQL指針。
const string host = "127.0.0.1";
const string user = "thj";
const string password = "Abcd1234@";
const string db = "test_connection";
unsigned int port = 4106;
mfp = mysql_real_connect(mfp, host.c_str(), user.c_str(), password.c_str(), db.c_str(), port, nullptr, 0);
if(mfp == nullptr)
{
    cerr << "mysql connection error" << endl;
    return 2;
}
cout << "mysql connection success" << endl;

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

其實(shí)從這里我們也可以看出 MYSQL 其實(shí)就是一個(gè)結(jié)構(gòu)體,其中包含了 host、user、port 等字段,我們調(diào)用 mysql_real_connect 函數(shù)時(shí)傳遞的參數(shù)就是用來填充這些字段的。【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

設(shè)置連接字符集

需要注意的是,我們之前在創(chuàng)建數(shù)據(jù)庫時(shí)默認(rèn)使用的字符集是 utf8,而C語言連接數(shù)據(jù)時(shí)默認(rèn)的字符集是 latin1 的,這就會(huì)導(dǎo)致我們?cè)谙虮碇胁迦胫形臄?shù)據(jù)時(shí),由于字符集不匹配,最終數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)顯式出來是亂碼。

所以,我們需要使用 mysql_set_character_set 函數(shù)設(shè)置連接字符集為 utf8。

int mysql_set_character_set(MYSQL *mysql, const char *csname)
  • 函數(shù)返回值:返回0表示成功,非0表示失敗。
int n = mysql_set_character_set(mfp, "utf8");
if(n != 0) { cout << "warning: character set fail" << endl; }

4、下發(fā) mysql 指令

在成功連接到數(shù)據(jù)庫之后,我們就可以通過 mysql_query 函數(shù)來下發(fā) mysql 指令了。

int mysql_query(MYSQL *mysql, const char *stmt_str)
  • 函數(shù)返回值:執(zhí)行成功返回0,失敗返回非0。
string sql;
while(true)
{
    cout << "mysql>>> ";
    getline(cin, sql);
    int n = mysql_query(mfp, sql.c_str());
    if(n != 0) 
    { 
        cout << sql << " fail" << endl; 
    }
    else cout << sql << " success" << endl;
}

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

我們可以登錄 msyql 客戶端查看數(shù)據(jù)是否真正被插入:【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

需要注意的是,我們?cè)谑褂?mysql client 時(shí),一條 sql 語句需要以分號(hào)結(jié)尾;但是在C語言中,sql 語句可以不用帶分號(hào),當(dāng)然帶上也沒事。

5、獲取 mysql 查詢結(jié)果

我們上面是對(duì)數(shù)據(jù)庫執(zhí)行增刪改操作,它們相對(duì)來說比較簡(jiǎn)單,因?yàn)槲覀冎恍枰獙⒅噶钕掳l(fā)給數(shù)據(jù)庫即可,后面的事情我們不必關(guān)心。但如果我們執(zhí)行的是查詢操作,則需要通過 mysql_store_result 函數(shù)來獲取查詢結(jié)果。

MYSQL_RES *mysql_store_result(MYSQL *mysql)
  • 函數(shù)返回值:失敗返回 NULL,成功返回一個(gè)非空的 MYSQL_RES 類型的結(jié)構(gòu)體指針。

實(shí)際上,mysql_store_result 函數(shù)會(huì)調(diào)用 MYSQL 結(jié)構(gòu)體變量中的 st_mysql_methods 字段中的 read_rows 函數(shù)指針來獲取查詢的結(jié)果;然后將查詢結(jié)果保存到 MYSQL_RES 結(jié)構(gòu)體中并返回結(jié)構(gòu)體指針。這樣,當(dāng)執(zhí)行完 mysql_store_result 以后,其實(shí)數(shù)據(jù)都已經(jīng)在MYSQL_RES 變量中了,我們直接從中獲取即可。

需要注意的是,MYSQL_RES 是通過 malloc/new 空間的方式來保存查詢結(jié)果的,所以當(dāng)我們使用完畢之后,一定要記得釋放 MYSQL_RES 對(duì)象,否則就會(huì)造成內(nèi)存泄漏。同時(shí),MYSQL_RES 結(jié)構(gòu)體中存在查詢結(jié)果的列數(shù)、列信息、行數(shù)、行內(nèi)容等屬性,我們需要使用對(duì)應(yīng)的函數(shù)來獲取這些信息。【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

  • 獲取結(jié)果列數(shù)。
unsigned int mysql_num_fields(MYSQL_RES *result)
  • 獲取結(jié)果中每一列的列屬性。
MYSQL_FIELD *mysql_fetch_field(MYSQL_RES *res);

關(guān)于 MYSQL_FIELD 結(jié)構(gòu)體,它里面包含了列的各種屬性信息,包括列名稱、列類型、列大小、列屬于哪個(gè)表哪個(gè)庫等等。【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

同時(shí),我們可以通過重復(fù)調(diào)用 mysql_fetch_field 函數(shù)來獲取表中每個(gè)列字段的 MYSQL_FIELD 結(jié)構(gòu),即當(dāng)我們下次再調(diào)用 mysql_fetch_field 函數(shù)時(shí),會(huì)自動(dòng)獲取到表中下一個(gè)列的屬性信息,而不需要我們手動(dòng)指定訪問的是哪一列。這和C++中的迭代器很類似。 這種類似迭代器的功能應(yīng)該是與 MYSQL_RES 中的 current_field 字段有關(guān)。【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

當(dāng)然,我們也可以通過調(diào)用 mysql_fetch_fields 函數(shù)一次獲取到所有列的屬性信息,然后分別打印。

MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res);
  • 獲取結(jié)果行數(shù)。
my_ulonglong mysql_num_rows(MYSQL_RES *result)
  • 獲取結(jié)果中每一行的具體內(nèi)容。
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

MYSQL_ROW 本質(zhì)上其實(shí)是一個(gè)二級(jí)指針,我們可以把它當(dāng)作一個(gè)一級(jí)指針數(shù)組來看待,數(shù)組中的每個(gè)元素都是一級(jí)指針。同時(shí),由于 MYSQL_RES 中保存的是查詢到的多行結(jié)果,所以我們可以將 MYSQL_RES 看作是一個(gè)二級(jí)指針數(shù)組,數(shù)組中的每個(gè)元素都是二級(jí)指針 (MYSQL_ROW)。【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

如上,將 MYSQL_RES 當(dāng)作一個(gè)二維數(shù)組,那么 MYSQL_RES 中的每一個(gè)元素就代表查詢結(jié)果中的一行數(shù)據(jù) (不包含屬性行),這行數(shù)據(jù)是一個(gè)一維數(shù)組,且數(shù)組中的每個(gè)元素都是 char* 類型 (mysql 在讀取數(shù)據(jù)時(shí)會(huì)將所有的數(shù)據(jù)都當(dāng)作字符串)。這樣,我們就可以先使用 mysql_num_rows 和 mysql_num_fields 獲取到結(jié)果集的行數(shù)和列數(shù),然后以遍歷二維數(shù)組的方式即可獲取到全部行的內(nèi)容了。

具體示例如下:

// 下發(fā)mysql指令 -- 查詢
string sql = "select * from user";
if (mysql_query(mfp, sql.c_str()) != 0)
{ 
    cout << sql << " fail" << endl; 
}
else cout << sql << " success" << endl;

// 將查詢結(jié)果轉(zhuǎn)儲(chǔ)到MYSQL_RES中
MYSQL_RES *res = mysql_store_result(mfp);
if(res == nullptr)
{
    cerr << "store query result error" << endl;
    return 3;
}

// 獲取結(jié)果集的行數(shù)與列數(shù)
size_t rowCount = mysql_num_rows(res);
size_t colCount = mysql_num_fields(res);

// 打印列屬性信息 -- 一次獲取單列
for(int i = 0; i < colCount; i++)
{
    // 一個(gè)列字段的所有屬性 -- 自動(dòng)迭代
    MYSQL_FIELD *field = mysql_fetch_field(res);
    cout << field->name << '\t';
}
cout << endl;

// 一次獲取全部列字段的屬性信息,然后分別打印
// MYSQL_FIELD *total_fields = mysql_fetch_fields(res);
// for(int i = 0; i < colCount; i++)
// {
//     cout << total_fields[i].name << '\t';
// }
// cout << endl;

// 打印結(jié)果集中的行內(nèi)容
for(int i = 0; i < rowCount; i++)
{
    // 一行的所有內(nèi)容 -- 自動(dòng)迭代
    MYSQL_ROW row = mysql_fetch_row(res);
    for(int j = 0; j < colCount; j++)
    {
        // 一行內(nèi)容中的某一列的內(nèi)容
        cout << row[j] << '\t';
    }
    cout << endl;
}

【MySQL】C語言連接數(shù)據(jù)庫,MySQL,數(shù)據(jù)庫,mysql,c語言

6、釋放 MYSQL_RES 對(duì)象

由于 MYSQL_RES 保存查詢結(jié)果的空間是通過 malloc/new 得到的,所以當(dāng)我們使用完畢后需要釋放掉 MYSQL_RES 對(duì)象,防止內(nèi)存泄露。

void mysql_free_result(MYSQL_RES *result)
mysql_free_result(res);

7、關(guān)閉 MySQL 連接

最后,當(dāng)我們使用完 MySQL 后,需要關(guān)閉 MySQL 之前建立的連接。

void mysql_close(MYSQL *sock);
mysql_close(mfp);

8、MySQL 其他操作

除了上述這些操作外,MySQL C API 還支持事務(wù)、回滾等常見操作,感興趣的同學(xué)可以了解一下。

my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode);
my_bool STDCALL mysql_commit(MYSQL * mysql);
my_bool STDCALL mysql_rollback(MYSQL * mysql);

9、總結(jié)

使用 MySQL C API 連接數(shù)據(jù)庫進(jìn)行簡(jiǎn)單操作的步驟如下:

  1. 初始化 MYSQL 結(jié)構(gòu)體指針 – mysql_init。
  2. 連接 MySQL – mysql_real_connect:需要指定數(shù)據(jù)庫服務(wù)所在主機(jī)、端口以及登錄mysql的用戶和密碼等信息。
  3. 下發(fā) MySQL 指令 – mysql_query。
  4. 獲取 MySQL 查詢結(jié)果:將查詢結(jié)果轉(zhuǎn)儲(chǔ)到 MYSQL_RES 中 – mysql_store_result,獲取查詢結(jié)果的行數(shù) – mysql_num_rows,獲取查詢結(jié)果列數(shù) – mysql_num_fields,獲取單個(gè)/所有列字段的 MYSQL_FIELD 屬性信息 – mysql_fetch_field/mysql_fetch_fields,獲取查詢結(jié)果單行的內(nèi)容 (不包含屬性行) – mysql_fetch_row。
  5. 釋放 MYSQL_RES 對(duì)象 – mysql_free_result。
  6. 關(guān)閉 MySQL 連接 – mysql_close。
#include <iostream>
#include <mysql/mysql.h>
using namespace std;

int main()
{
    // 驗(yàn)證C庫是否引入成功
    // cout << "mysql version: " << mysql_get_client_info() << endl;

    // 初始化MYSQL指針
    MYSQL *mfp = mysql_init(nullptr);
    if(mfp == nullptr)
    {
        cerr << "mysql init error" << endl;
        return 1;
    }
    cout << "mysql init success" << endl;

    // 連接數(shù)據(jù)庫
    const string host = "127.0.0.1";
    const string user = "thj";
    const string password = "Abcd1234@";
    const string db = "test_connection";
    unsigned int port = 4106;
    mfp = mysql_real_connect(mfp, host.c_str(), user.c_str(), password.c_str(), db.c_str(), port, nullptr, 0);
    if(mfp == nullptr)
    {
        cerr << "mysql connection error" << endl;
        return 2;
    }
    cout << "mysql connection success" << endl;

    // 設(shè)置連接字符集
    int n = mysql_set_character_set(mfp, "utf8");
    if(n != 0) { cout << "warning: character set fail" << endl; }

    // 下發(fā)mysql指令 -- 增刪改
    // string sql;
    // while(true)
    // {
    //     cout << "mysql>>> ";
    //     getline(cin, sql);
    //     int n = mysql_query(mfp, sql.c_str());
    //     if(n != 0) 
    //     { 
    //         cout << sql << " fail" << endl; 
    //     }
    //     else cout << sql << " success" << endl;
    // }

    // 下發(fā)mysql指令 -- 查詢
    string sql = "select * from user";
    if (mysql_query(mfp, sql.c_str()) != 0)
    { 
        cout << sql << " fail" << endl; 
    }
    else cout << sql << " success" << endl;

    // 將查詢結(jié)果轉(zhuǎn)儲(chǔ)到MYSQL_RES中
    MYSQL_RES *res = mysql_store_result(mfp);
    if(res == nullptr)
    {
        cerr << "store query result error" << endl;
        return 3;
    }

    // 獲取結(jié)果集的行數(shù)與列數(shù)
    size_t rowCount = mysql_num_rows(res);
    size_t colCount = mysql_num_fields(res);

    // 打印列屬性信息 -- 一次獲取單列
    for(int i = 0; i < colCount; i++)
    {
        // 一個(gè)列字段的所有屬性 -- 自動(dòng)迭代
        MYSQL_FIELD *field = mysql_fetch_field(res);
        cout << field->name << '\t';
    }
    cout << endl;

    // 一次獲取全部列字段的屬性信息,然后分別打印
    // MYSQL_FIELD *total_fields = mysql_fetch_fields(res);
    // for(int i = 0; i < colCount; i++)
    // {
    //     cout << total_fields[i].name << '\t';
    // }
    // cout << endl;

    // 打印結(jié)果集中的行內(nèi)容
    for(int i = 0; i < rowCount; i++)
    {
        // 一行的所有內(nèi)容 -- 自動(dòng)迭代
        MYSQL_ROW row = mysql_fetch_row(res);
        for(int j = 0; j < colCount; j++)
        {
            // 一行內(nèi)容中的某一列的內(nèi)容
            cout << row[j] << '\t';
        }
        cout << endl;
    }

   // 釋放MYSQL_RES對(duì)象
   mysql_free_result(res);

   // 關(guān)閉數(shù)據(jù)庫連接
   mysql_close(mfp);

    return 0;
}

三、使用圖形化工具連接 MySQL

其實(shí)除了使用各種編程語言來連接數(shù)據(jù)庫之外,在實(shí)際開發(fā)中另一種比較常用的方式是使用圖形化工具來連接數(shù)據(jù)庫。

市場(chǎng)上關(guān)于 MySQL 的圖形化工具有很多,其中比較優(yōu)秀的是 Navicat 和 SQLyog,但他們都是收費(fèi)的,當(dāng)然如果個(gè)人使用的話可以在網(wǎng)上下載破解版的。免費(fèi)的工具也有很多,但大都不怎么好用,在免費(fèi)工具中表現(xiàn)比較優(yōu)秀的是 MySQL 官方開發(fā)的 Workbench。如果大家有興趣的話可以去嘗試一下,這里我僅僅簡(jiǎn)單提一下。

相關(guān)文章閱讀推薦:https://blog.csdn.net/wpc2018/article/details/122862956文章來源地址http://www.zghlxwxcb.cn/news/detail-718847.html


到了這里,關(guān)于【MySQL】C語言連接數(shù)據(jù)庫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python 連接 MySQL 數(shù)據(jù)庫

    在實(shí)際數(shù)據(jù)分析和建模過程中,我們通常需要從數(shù)據(jù)庫中讀取數(shù)據(jù),并將其轉(zhuǎn)化為 Pandas dataframe 對(duì)象進(jìn)行進(jìn)一步處理。而 MySQL 數(shù)據(jù)庫是最常用的關(guān)系型數(shù)據(jù)庫之一,因此在 Python 中如何連接 MySQL 數(shù)據(jù)庫并查詢數(shù)據(jù)成為了一個(gè)重要的問題。 本文將介紹兩種方法來連接 MySQL 數(shù)據(jù)

    2024年02月16日
    瀏覽(13)
  • Java連接mysql數(shù)據(jù)庫

    Java連接mysql數(shù)據(jù)庫

    java連接mysql大致需要這六步: 導(dǎo)入驅(qū)動(dòng)包 :這里我使用的是mysql-connector-java-8.0.17.jar( 點(diǎn)擊下載 ),這個(gè)包連接mysql5.6,5.7,8.0版本都沒問題。 Class.forName(\\\"com.mysql.cj.jdbc.Driver\\\"); url和賬戶名密碼 JDBC連接串: jdbc:mysql://地址:端口/數(shù)據(jù)庫 獲取連接 : DriverManager.getConnection(url, user

    2024年02月02日
    瀏覽(32)
  • C++連接mysql數(shù)據(jù)庫

    C++連接mysql數(shù)據(jù)庫

    目錄 一、準(zhǔn)備 二、讀取數(shù)據(jù) 三、修改數(shù)據(jù) 參考博客 mysql安裝及操作 首先在本地下載mysql數(shù)據(jù)庫,或者使用在線數(shù)據(jù)庫,在數(shù)據(jù)庫中創(chuàng)建一個(gè)表,往表里填入數(shù)據(jù),不然無法讀取到數(shù)據(jù)。運(yùn)行代碼前,將libmysql的靜態(tài)庫和動(dòng)態(tài)庫拷貝到代碼路徑,c++工程的包含路徑配置成mys

    2024年02月15日
    瀏覽(30)
  • Mysql查詢數(shù)據(jù)庫連接狀態(tài)及連接信息

    使用MySQL時(shí),需要了解當(dāng)前數(shù)據(jù)庫的情況,例如當(dāng)前的數(shù)據(jù)庫大小、字符集、用戶等等。下面總結(jié)了一些查看數(shù)據(jù)庫相關(guān)信息的命令 查看顯示所有數(shù)據(jù)庫 查看當(dāng)前使用的數(shù)據(jù)庫 查看數(shù)據(jù)庫使用端口 查看當(dāng)前數(shù)據(jù)庫大小 例如,我要查看INVOICE數(shù)據(jù)庫的大小,那么可以通過下面

    2024年02月11日
    瀏覽(30)
  • MySQL數(shù)據(jù)庫,JDBC連接數(shù)據(jù)庫操作流程詳細(xì)介紹

    MySQL數(shù)據(jù)庫,JDBC連接數(shù)據(jù)庫操作流程詳細(xì)介紹

    在學(xué)完 MySQL 和 Java 后,我們通常會(huì)嘗試使用 Java編譯器 連接 MySQL數(shù)據(jù)庫,從而達(dá)到使用編譯器來操作數(shù)據(jù)庫的效果。連接的這個(gè)過程會(huì)用 JDBC 相關(guān)知識(shí),因此我把 JDBC 包的下載及導(dǎo)入流程,以及 JDBC 的使用流程整理下來分享給大家。 目錄 1. 啥是JDBC? 2. JDBC依賴包 2.1 依賴包

    2024年02月06日
    瀏覽(98)
  • Qt 無法連接MySQL數(shù)據(jù)庫

    Qt 5.15及之后版本缺少mysql驅(qū)動(dòng):qsqlmysql.dll、qsqlmysqld.dll 下載對(duì)應(yīng)版本驅(qū)動(dòng):https://github.com/thecodemonkey86/qt_mysql_driver/releases?page=2 拷貝至Qt安裝路徑下,例如 Qt5.15.25.15.2msvc2019_64pluginssqldrivers 根據(jù)mysql版本下載對(duì)應(yīng)mysql壓縮包https://downloads.mysql.com/archives/community/ 找到libmysql.dll、

    2024年04月12日
    瀏覽(28)
  • eclipse連接mysql數(shù)據(jù)庫操作

    eclipse連接mysql數(shù)據(jù)庫操作

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 文章目錄 目錄 前言 一、mysql數(shù)據(jù)庫 二、eclipse項(xiàng)目里要有數(shù)據(jù)庫jar包 1.下載或直接使用已有mysql-connection的jar包 2.eclipse加上MySQL 連接 3.項(xiàng)目執(zhí)行sql文件 總結(jié) 使用eclipse的sql文件實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)創(chuàng)建 提示

    2024年02月04日
    瀏覽(25)
  • 【MySQL】使用C++連接數(shù)據(jù)庫

    創(chuàng)建數(shù)據(jù)庫并選中 創(chuàng)建表并描述表結(jié)構(gòu) 增加刪除修改均可正常執(zhí)行,查詢較為復(fù)雜,整體代碼中有案例 如果查詢則需要把查詢數(shù)據(jù)保存到結(jié)果集,通過mysql所提供的函數(shù) 得到行和列,遍歷得到結(jié)果。 初始化mysql并返回句柄(默認(rèn)傳入nullptr即可) 如: MYSQL *mfp = mysql_init(nul

    2024年02月13日
    瀏覽(30)
  • MySQL數(shù)據(jù)庫的多種連接方式

    MySQL數(shù)據(jù)庫的多種連接方式

    在Mysql安裝完成后,Mysql命令行會(huì)自動(dòng)配置在計(jì)算機(jī)上,在菜單中找到MySql 8.0 Command Line Client,輸入密碼即可進(jìn)入。(密碼在安裝過程中設(shè)定的) ? ? 1.、直接去到MySQL的bin目錄里在目錄框里輸入cmd ? 注意: -u后面為用戶名,-p為密碼 ? 1、Navicat Premium 的使用 “Navicat”是一套

    2024年01月16日
    瀏覽(33)
  • PHP之 連接MySql數(shù)據(jù)庫

    PHP之 連接MySql數(shù)據(jù)庫

    上一節(jié)已經(jīng)成功配置了php+mysql開發(fā)環(huán)境( https://mp.csdn.net/mp_blog/creation/editor/129432310), 下面將進(jìn)行實(shí)戰(zhàn)連接數(shù)據(jù)庫 一,打開sublime3編輯器,配置php開發(fā)環(huán)境 1.1 在網(wǎng)站根目錄下新建php項(xiàng)目文件夾,存放php文件 1.2 安裝Package Control,按下ctrl+shift+p,調(diào)出輸入框輸入Package Control,

    2024年02月02日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包