pip install pymysql
注:
import pymysql
import pandas as pd
from pandas import DataFrame as df
conn = pymysql.Connect(
host = 'IP地址',
port = 埠號,
user = '使用者名稱',
passwd = '使用者密碼',
db = '資料庫名稱',
charset = 'utf8'
)
注:
sql = 'select * from testa'
data = pd.read_sql(sql, conn)
sql = 'select * from testa'
cur = conn.cursor()
try: # 使用例外處理,以防程式無法正常執行
cur.execute(sql)
data = df(cur.fetchall(), columns = [col[0] for col in cur.description])
except Exception as e:
conn.rollback() # 發生錯誤時回滾
print('事務處理失敗', e)
else:
# conn.commit() # 事務提交
print('事務處理成功', cur.rowcount)
cur.close()
注:
read_sql、cursor遊標區別:
read_sql :只能執行查詢資料
cursor遊標 :可以執行查詢、插入、更新、刪除等操作
cur.execute(sql) :
執行具體資料庫的操作
cur.fetchone() :
獲取單條資料
cur.fetchmany(3) :
獲取前3條資料
cur.fetchall() :
獲取所有資料
查詢結果中含欄位名稱:
# 法1:
cur = conn.cursor(cursor = pymysql.cursors.DictCursor) # 設定成DictCursor,結果包含欄位名稱
cur.execute(sql)
data = df(cur.fetchall())
# 法2:
cur = conn.cursor()
cur.execute(sql)
data = df(cur.fetchall(),columns = [col[0] for col in cur.description])
conn.commit() :
插入、更新、刪除等操作需用該語句;查詢、建立資料庫、資料表則不需要
cur.rowcount :
返回執行的操作條數
conn.close()