溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Pymysql的Cursor有哪些API

發(fā)布時間:2020-09-25 09:03:16 來源:億速云 閱讀:204 作者:Leah 欄目:編程語言

Pymysql的Cursor有哪些API?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Cursor常用API

1、cursor.execute(query, args=None):執(zhí)行sql語句。

參數(shù):    

query (str):sql語句。

args (tuple, list or dict):sql語句中如果有變量,或者格式化輸出,會在這里填充數(shù)據(jù)。

Returns:返回一個int值,表示sql語句影響到的行數(shù)。

下面演示插入數(shù)據(jù)的四種方式:

import pymysql.cursors
# 連接數(shù)據(jù)庫
connect = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='123',
    db='demo_temp',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)
with connect.cursor() as cursor:   # 創(chuàng)建游標(biāo)
    # 第一種方式向表中插入數(shù)據(jù)
    sql = """
        INSERT INTO users (user,passwd) VALUES ('123','123')
        """
    cursor.execute(sql)
    # 第二種方式向表中插入數(shù)據(jù)
    sql = """
           INSERT INTO users (user,passwd) VALUES (%s,%s)
           """
    cursor.execute(sql,['456','456'])
    # 第三種方式向表中插入數(shù)據(jù)
    sql = """
               INSERT INTO users (user,passwd) VALUES (%s,%s)
               """
    cursor.execute(sql, ('789', '789'))
    # 第四種方式向表中插入數(shù)據(jù)
    sql = """
               INSERT INTO users (user,passwd) VALUES (%(a)s,%(b)s)  
               """
    cursor.execute(sql, {'a':'abc','b':'123'})  # 這里的'a'和'b'要和上面VALUES中對應(yīng)
    connect.commit()  # 插入數(shù)據(jù)后必須更新
    # 查詢數(shù)據(jù)
    sql = """
        select * from users
        """
    cursor.execute(sql)
    ret = cursor.fetchall()  # 提取查詢數(shù)據(jù)
    print(ret)
connect.close()   # 關(guān)閉數(shù)據(jù)庫連接

2、cursor.executemany(query, args):可以執(zhí)行多條sql語句。

參數(shù):    

query :sql語句

args:可迭代對象

Returns:返回sql語句影響到的行數(shù)。

下面是方法實例:

import pymysql.cursors
# 連接數(shù)據(jù)庫
connect = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='123',
    db='demo_temp',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)
with connect.cursor() as cursor:   # 創(chuàng)建游標(biāo)
    # 插入多條數(shù)據(jù)
    sql = """
               INSERT INTO users (user,passwd) VALUES (%s,%s)  
               """
    ret_row = cursor.executemany(sql,[['a','123'],['b','234'],['c','456']])  # 在args中傳入一個可迭代對象。
    connect.commit()  # 插入數(shù)據(jù)后必須更新
    print(f'當(dāng)前受影響了{(lán)ret_row}行')
    # 查詢數(shù)據(jù)
    sql = """
        select * from users
        """
    cursor.execute(sql)
    ret = cursor.fetchall()  # 提取查詢數(shù)據(jù)
    print(ret)
connect.close()   # 關(guān)閉數(shù)據(jù)庫連接

3、cursor.fetchone():從查詢語句中獲取一條查詢結(jié)果。

4、cursor.fetchall():獲取所有查詢到的結(jié)果。

5、cursor.fetchmany(size):根據(jù)size獲取相應(yīng)的行數(shù)。

6、cursor.mogrify(query, args=None):返回執(zhí)行的sql語句,下面是示例:

import pymysql.cursors
# 連接數(shù)據(jù)庫
connect = pymysql.connect(
    host='127.0.0.1',
    user='root',
    password='123',
    db='demo_temp',
    charset='utf8',
    cursorclass=pymysql.cursors.DictCursor
)
with connect.cursor() as cursor:   # 創(chuàng)建游標(biāo)
    sql = """
        select * from users
        """
    cursor.execute(sql)
    ret_sql = cursor.mogrify(sql)   # 返回執(zhí)行的sql語句
    cursor.fetchmany(2)             # 提取查詢數(shù)據(jù)
    print(ret_sql)
connect.close()   # 關(guān)閉數(shù)據(jù)庫連接

7、cursor.close():關(guān)閉游標(biāo),關(guān)閉游標(biāo)后,游標(biāo)內(nèi)所有數(shù)據(jù)將被清空。

關(guān)于Pymysql的Cursor有哪些API問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI