python--pymysql模塊學習筆記

一:兩個對象 connection 與 cursor

       調用connect()方法創建 connection對象:

connection = pymysql.connect(args)

       connection對象方法與屬性介紹:

close()                           Send the quit message and close the socket.
commit()                       Commit changes to stable storage.
cursor(cursor=None)   Create a new cursor to execute queries with.
open                             Return True if the connection is open
begin()                          Begin transaction;
ping(reconnect=True)  Check if the server is alive.
rollback()                      Roll back the current transaction.
select_db(db)               Set current db.

show_warnings()          Send the “SHOW WARNINGS” SQL command

       cursor對象是用來與數據庫進行交互的;通過connection對象調用cursor()方法創建cursor對象

cursor = connection.cursor()
# cursor = connection.cursor(cursor = pymysql.cursors.DictCursor) 

       cursor對象方法與屬性介紹:

close()       Closing a cursor just exhausts all remaining data.
execute(query, args=None)   Execute a query ;Return: Number of affected rows (a int number)
# If args is a list or tuple, %s can be used as a placeholder in the query.
# If args is a dict, %(name)s can be used as a placeholder in the query.

executemany(query, args)    Run several data against one query
fetchall()                               Fetch all the rows
fetchmany(size=None)        Fetch several rows

fetchone()                            Fetch the next row


二:代碼與筆記

import pymysql  #導入pymysql模塊

connection = pymysql.connect(host='127.0.0.1',
                             user='user',
                             password='pwd',
                             database='db',     # 也有用  db='db' ,是數據庫的別名,爲了兼容MySQLdb
                             charset='utf8',     # 可選
                             cursorclass=pymysql.cursors.DictCursor,  # 可選,這種cursor會以字典的形式返回查詢結果
                             autocommit=True)    # 可選 設置爲自動提交;默認autocommit=False

cursor = connection.cursor()    # 產生cursor對象,該對象用來與數據庫進行交互

sql = 'insert into t1(name,password) values(%s,%s);'
cursor.execute(sql,('rock','123'))
# connection.commit()  若無設置autocommit=True,則需要在這提交以保存你的修改

sql1 = 'select * from t1;'
rows = cursor.execute(sql1)    # 執行一條查詢,返回受影響的行數,而不是查詢結果
res = cursor.fetchall()        # 取出所有的查詢結果

cursor.close()      # 需先關閉cursor
connection.close()  # 最後要關閉connection


# with connection.cursor() as cursor:   # 採用這種方式最後會自動關閉cursor,所以無需再用cursor.close()
#     sql = 'select * from t1;'
#     rows = cursor.execute(sql)
#     res = cursor.fetchall()

# 選用pymysql.cursors.DictCursor  以字典的形式返回查詢結果
# 如 {'name': '程咬鐵', 'sex': 'female'}    形式爲 {列名:列值,列名:列值}

# 注意:查詢結果中的每條記錄只能被取一次,所有記錄取完了再取就會取空(None 或 空列表)
# fetchone()             從查詢結果中取出下一條記錄
# fetchmany(size=None)   從查詢結果中取出幾條記錄,放入一個列表中;不設置size,默認取出下一條記錄
# fetchall()             從查詢結果中取出所有記錄,放入一個列表中


發佈了53 篇原創文章 · 獲贊 34 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章