因為Python和MySQL是2套軟件,所以在互相交互的時候需要一個 “橋梁”。
這個“橋梁”就是驅動!
mysqldb又叫MySQL-python 優點:基於C開發的庫,速度快 缺點:在 Windows 平台安裝非常不友好,經常出現失敗的情況,多年不更新了,只兼容 python2 mysqlclient 優點:基於C開發的庫,速度快,兼容python3 缺點:編譯安裝可能會導致報各種錯誤 pymysql 優點:純 Python 實現的驅動,兼容python3,使用簡單 缺點:速度不如mysqldbpymysql模塊中的函數 連接數據庫函數 connect函數:連接數據庫,根據連接的數據庫類型不同,該函數 的參數也不同。connect函數返回Connection對象。
import pymysql
#獲取連接
con =
pymysql.connect(host="localhost",port=3306,us
er="root",password="root",db="test06",charset
='utf8')
獲取游標 cursor方法:獲取操作數據庫的Cursor對象,包含了很多操作數據的 方法。cursor方法屬於Connection對象。 執行sql語句 執行單條sql語句函數作用:執行單條的sql語句,執行成功後返回受影響的行數 參數說明: query:要執行的sql語句,字符串類型 args:嵌套的序列或映射,用於query的參數值 提交事務 commit方法:在修改數據庫後,需要調用該方法提交對數據庫的修 改。rollback方法:如果修改數據庫失敗,一般需要調用該方法進行數 據庫回滾,也就是將數據庫恢復成修改之前的樣子。 創建數據庫和表 import pymysql
【示例】創建數據表
# 鏈接數據庫
con =
pymysql.connect(host='localhost',port=3306,u
ser='root',passwd='root',charset='utf8')
# 獲取一個和數據庫交互的工具cursor
coursor = con.cursor()
# 編寫SQL
sql = '''
CREATE DATABASE sxt
DEFAULT CHARACTER SET = 'utf8mb4';
'''
# 執行SQL
coursor.execute(sql)
# 關閉cursor
coursor.close()
# 關閉鏈接
con.close()
注意 在python的pymysql模塊,如果需要操作DML語句,需要手動提 交事務 con.commit()插入數據def add_one():
# 鏈接數據庫
con =
pymysql.connect(host='localhost',port=3306,
user='root',passwd='root',db='sxt',charset='
utf8')
# 獲取操作數據的對象 cursor
cursor = con.cursor()
# 編寫SQL-DML
# sql = "INSERT INTO t_user VALUES
(0,'貂的蟬',18,'女');"
sql = "INSERT INTO t_user VALUES
(0,%s,%s,%s);"
args = ('劉備',22,'男')
# 執行SQL
cursor.execute(sql,args)
# 提交事務
9
con.commit()
# 關閉Cursor
cursor.close()
# 關閉鏈接
con.close()
Python操作DML語句-更新刪除數據#將id=2的年齡修改為18
sql='update t_user set age=%s where id=%s'
cursor.execute(sql,(18,2))
【示例】刪除數據#導入模塊
import pymysql
#創建連接
con =
pymysql.connect(host='localhost',user='root'
,password='root',db='db_test',charset='utf8'
)
#創建游標對象cursor
cursor=con.cursor()
#刪除id=2
sql='delete from t_user where id=2'
#執行sql
cursor.execute(sql)
con.commit()