介紹:mysql
Python中用於鏈接MySQL數據庫的一種第三方工具庫。sql
安裝:數據庫
經過命令pip install pymysql安裝,在Python3中能夠經過pip3來安裝。工具
鏈接MySQL數據庫:fetch
鏈接以前的準備工做:spa
1,要有一個MySQL數據庫,而且已經啓動;code
2,你要知道數據庫的地址,用戶名和密碼;對象
3,你的主機擁有操做目標數據庫的權限。blog
基本地鏈接使用:事務
# 導入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()