python連接mysql數(shù)據(jù)庫并讀取數(shù)據(jù)的實(shí)現(xiàn)
1、安裝pymysql包
pip install pymysql
注:
MySQLdb只支持python2,pymysql支持python3
2、連接數(shù)據(jù)
import pymysql import pandas as pd from pandas import DataFrame as df conn = pymysql.Connect( host = 'IP地址', port = 端口號, user = '用戶名', passwd = '用戶密碼', db = '數(shù)據(jù)庫名稱', charset = 'utf8' )
注:
查看本機(jī)IP地址:cmd輸入:ipconfig,IPv4 地址
pymysql.Connect參數(shù)中的 host 服務(wù)器地址,本機(jī)可用'localhost'
3、讀取數(shù)據(jù)
(1)使用read_sql讀取數(shù)據(jù)
sql = 'select * from testa' data = pd.read_sql(sql, conn)
(2)使用cursor讀取數(shù)據(jù)
sql = 'select * from testa' cur = conn.cursor() try: # 使用異常處理,以防程序無法正常運(yùn)行 cur.execute(sql) data = df(cur.fetchall(), columns = [col[0] for col in cur.description]) except Exception as e: conn.rollback() # 發(fā)生錯誤時(shí)回滾 print('事務(wù)處理失敗', e) else: # conn.commit() # 事務(wù)提交 print('事務(wù)處理成功', cur.rowcount) cur.close()
注:
read_sql、cursor游標(biāo)區(qū)別:
- read_sql :只能執(zhí)行查詢數(shù)據(jù)
- cursor游標(biāo) :可以執(zhí)行查詢、插入、更新、刪除等操作
cur.execute(sql) :
- 執(zhí)行具體數(shù)據(jù)庫的操作
cur.fetchone() :
- 獲取單條數(shù)據(jù)
cur.fetchmany(3) :
- 獲取前3條數(shù)據(jù)
cur.fetchall() :
- 獲取所有數(shù)據(jù)
查詢結(jié)果中含字段名稱:
# 法1: cur = conn.cursor(cursor = pymysql.cursors.DictCursor) # 設(shè)置成DictCursor,結(jié)果包含字段名稱 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() :
- 插入、更新、刪除等操作需用該語句;查詢、創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表則不需要
cur.rowcount :
- 返回執(zhí)行的操作條數(shù)
4、關(guān)閉數(shù)據(jù)庫
conn.close()
到此這篇關(guān)于python連接mysql數(shù)據(jù)庫并讀取數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python連接mysql內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Sentry的安裝、配置、使用教程(Sentry日志手機(jī)系統(tǒng))
Sentry?是一個(gè)實(shí)時(shí)事件日志記錄和聚合平臺,由于ExceptionLess官方提供的客戶端只有.Net/.NetCore平臺和js的,本文繼續(xù)介紹另一個(gè)日志收集系統(tǒng)Sentry,感興趣的朋友一起看看吧2022-07-07python刪除指定類型(或非指定)的文件實(shí)例詳解
這篇文章主要介紹了python刪除指定類型(或非指定)的文件,以實(shí)例形式較為詳細(xì)的分析了Python刪除文件的相關(guān)技巧,需要的朋友可以參考下2015-07-07詳解Python實(shí)現(xiàn)字典合并的四種方法
這篇文章主要為大家詳細(xì)介紹了Python的合并字典的四種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能
wxpython沒提供界面跳轉(zhuǎn)的方式,所以就需要借助threading模塊,本文給大家分享python wxpython 實(shí)現(xiàn)界面跳轉(zhuǎn)功能,感興趣的朋友跟隨小編一起看看吧2019-12-12OpenCV實(shí)現(xiàn)機(jī)器人對物體進(jìn)行移動跟隨的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于OpenCV實(shí)現(xiàn)機(jī)器人對物體進(jìn)行移動跟隨的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Python黑魔法遠(yuǎn)程控制開機(jī)的實(shí)例
這篇文章主要介紹了Python黑魔法遠(yuǎn)程控制開機(jī)的實(shí)例,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很大的幫助,需要的朋友可以參考下2021-04-04利用Python發(fā)送 10 萬個(gè) http 請求
這篇文章主要介紹了如何利用Python發(fā)送 10 萬個(gè) http 請求,下面我們講利用Python寫代碼實(shí)現(xiàn)10 萬個(gè) url,對每個(gè) url 發(fā)送 http 請求,并打印請求結(jié)果的狀態(tài)碼,需要的朋友可以參考一下2021-12-12