日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 笔记9 -- PyMySQL

發布時間:2025/3/12 数据库 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 笔记9 -- PyMySQL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL 筆記9 – PyMySQL


MySQL 系列筆記是筆者學習、實踐MySQL數據庫的筆記

參考文檔:
MySQL 官方文檔
SQL 教程
PyMySQL官方文檔


一、基礎


1、簡介

  • PyMySQL 是 Python 連接 MySQL 的驅動程序庫
  • 采用純Python編寫,運行效率相對較低,但可以和Python無縫連接

2、安裝及導入

安裝:

pip install PyMySQL

導入:

import pymysql

二、使用


1、PyMySQL 庫

  • 原理:PyMySQL 連接MySQL,然后把用SQL語言編寫的操作數據庫指令傳遞給MySQL,最后 MySQL 把結果返回供 PyMySQL 讀取
  • PyMySQL 庫只有兩個類:連接類(Connection)、游標類(Cursor)
    • Connection:連接 MySQL
    • Cursor:與 MySQL 進行交互,傳送指令,讀取結果

2、連接對象(Connection Objects)

獲取連接對象:

pymysql.connect(host=None, user=None, password='', database=None, port=0)

參數:

  • host:MySQL的主機IP地址,本機可使用 ‘localhost’ / 127.0.0.1
  • user:登入用戶名,MySQL 初始只有 ‘root’ 管理員用戶
  • password:登入密碼
  • database:連接的數據庫名
  • port:端口號,默認 3306
  • 還有很多可選參數,具體可查看官方文檔

屬性和方法:

屬性/方法說明
.autocommit_mode提交模式,默認為None 不自動提交
.open是否已連接,是返回 True,反之
.begin()開始事務(transaction)
.commit()提交事務
.close()關閉數據庫連接
.cursor(cursor=None)創建游標對象
.ping(reconnect=True)重新連接
.rollback()事務回滾
.select_db(db)選擇數據庫,db:數據庫名稱
.show_warnings()發送’SHOW WARNINGS’ 的 SQL 命令
  • 每一次 .commit() 之前的所有SQL命令形成一個事務
  • .commit() 之后默認開啟事務

3、游標對象(Cursor Objects)

獲取游標對象:

pymysql.connect(...).cursor()

屬性和方法:

屬性/方法說明
.execute(query, args=None)執行命令,query:SQL命令str類型,args:額外參數,tuple、list or dict
.close()釋放cursor對象
.executemany(query, args)執行多條命令,返回 Number of rows affected
.fetchall()獲取所有行
.fetchmany(size=None)獲取size行
fetchone()獲取一行
  • execute() 中,如果 args 是 list/tuple,用 %s 傳入query ;如果是dict,用%(name)s

4、異常

異常說明
Warning當有嚴重警告時觸發,例如插入數據是被截斷等等。必須是 StandardError 的子類。
Error警告以外所有其他錯誤類。必須是 StandardError 的子類。
InterfaceError當有數據庫接口模塊本身的錯誤(而不是數據庫的錯誤)發生時觸發。 必須是Error的子類。
DatabaseError和數據庫有關的錯誤發生時觸發。 必須是Error的子類。
DataError當有數據處理時的錯誤發生時觸發,例如:除零錯誤,數據超范圍等等。 必須是DatabaseError的子類。
OperationalError指非用戶控制的,而是操作數據庫時發生的錯誤。例如:連接意外斷開、 數據庫名未找到、事務處理失敗、內存分配錯誤等等操作數據庫是發生的錯誤。 必須是DatabaseError的子類。
IntegrityError完整性相關的錯誤,例如外鍵檢查失敗等。必須是DatabaseError子類。
InternalError數據庫的內部錯誤,例如游標(cursor)失效了、事務同步失敗等等。 必須是DatabaseError子類。
ProgrammingError程序錯誤,例如數據表(table)沒找到或已存在、SQL語句語法錯誤、 參數數量錯誤等等。必須是DatabaseError的子類。
NotSupportedError不支持錯誤,指使用了數據庫不支持的函數或API等。例如在連接對象上 使用.rollback()函數,然而數據庫并不支持事務或者事務已關閉。 必須是DatabaseError的子類。

三、實例


import pymysql# 連接數據庫 connection = pymysql.connect(host='localhost',user='root',password='1234',db='test',charset='utf8')try:# 獲取cursor,with語句結束后cursor自動close()with connection.cursor() as cursor:# 插入一行sql = "INSERT INTO info(email, password) VALUES(%s, %s)"cursor.execute(sql, ('123@qq.com', 'secret'))# 提交事務connection.commit()with connection.cursor() as cursor:# 讀取記錄sql = "SELECT id,password FROM info WHERE email=%s"cursor.execute(sql, ('123@qq.com',))result = cursor.fetchone()print(result)except Exception as e:# 發生錯誤時回滾print(e)connection.rollback() finally:# 關閉連接connection.close()

GOOD LUCK!


與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的MySQL 笔记9 -- PyMySQL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。