Python模塊之PyMySQL
阿新 • • 發佈:2018-04-05
mysql模塊 指定 ima def clas import OS hone 例如
PyMySQL
介紹:
Python中用於連接MySQL數據庫的一種第三方工具庫。
安裝:
通過命令pip install pymysql安裝,在Python3中可以通過pip3來安裝。
連接MySQL數據庫:
連接之前的準備工作:
1,要有一個MySQL數據庫,並且已經啟動;
2,你要知道數據庫的地址,用戶名和密碼;
3,你的主機擁有操作目標數據庫的權限。
基本地連接使用:
# 導入PyMySQL模塊 import pymysql # 連接database conn = pymysql.connect(host="你的數據庫地址", user="用戶名", password="密碼", database="數據庫名", charset="utf8") # charset="utf8" 不能寫作utf-8 # 得到一個可以執行SQL語句的對象 cursor = conn.cursor() # 添加參數cursor=pymysql.cursors.DictCursor,可以設定執行SQL語句的返回為字典格式 # 定義要執行的SQL語句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8;""" # 執行SQL語句 cursor.execute(sql) # 關閉光標對象 cursor.close() # 關閉數據庫連接 conn.close()
增刪改查:
基本格式
import pymysql conn = pymysql.connect(host="你的數據庫地址", user="用戶名", password="密碼", database="數據庫名", charset="utf8") cursor = conn.cursor() sql = "Mysql增刪改查語句" cursor.execute(sql) conn.commit()# 增刪改需要提交事務 cursor.close() conn.close()
如果要動態操作數據,可以在SQL語句中使用%s格式化輸出。例如:
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" username = "tom" age = 18 cursor.execute(sql, [username, age])
如果要獲取新添加的數據的ID,可以在提交事務後通過lastrowid來實現。
cursor.execute(sql) conn.commit() # 提交之後,獲取最後一條數據的ID last_id = cursor.lastrowid
查詢結果獲取
1,獲取單條數據
# 執行SQL語句 cursor.execute(sql) # 獲取單條查詢數據 ret = cursor.fetchone()
2,獲取多條數據
# 執行SQL語句 cursor.execute(sql) # 獲取全部查詢數據 ret = cursor.fetchall() # 還可以獲取指定數量的數據 ret = cursor.fetchmany(3)
批量執行
sql = "INSERT INTO USER1(name, age) VALUES (%s, %s);" date = [(tom, 18), (jerry, 18)] cursor.executemany(sql, data)
操作失敗回滾:通過異常處理來完成。
try: # 執行SQL語句 cursor.execute(sql) # 提交事務 conn.commit() except Exception: # 有異常,回滾事務 conn.rollback()
Python模塊之PyMySQL