pymysql插入數據詳解

pymysql是Python下一個能夠在Python3.x版本中連接MySQL資料庫的庫,它是一個純Python實現的MySQL客戶端,支持Python3.x和Python2.x,完全兼容MySQLdb的API。

一、pymysql連接遠程資料庫

使用pymysql連接遠程資料庫需要如下步驟:

1、首先,需要在遠程MySQL資料庫中創建用戶,並給該用戶授權:


-- 創建用戶
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';

-- 給用戶授權
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';

2、遠程MySQL資料庫需要開啟遠程訪問功能,通過修改其配置文件來實現:


# 打開MySQL配置文件my.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

# 注釋掉下面這一行
# bind-address        = 127.0.0.1

# 重啟MySQL服務
sudo service mysql restart

3、編寫Python代碼連接遠程MySQL資料庫:


import pymysql

# 建立連接
db = pymysql.connect(host="host_ip", port=port, user="user_name", password="password", database="database_name")

# 創建游標對象
cursor = db.cursor()

# 執行SQL語句
cursor.execute("SELECT VERSION()")

# 獲取資料庫版本號
data = cursor.fetchone()

# 輸出數據
print("MySQL 版本號為:{}".format(data))

# 關閉連接
db.close()

二、pymysql查詢出來的數據格式

pymysql查詢出的數據格式為元組(tuple),元組中的值對應查詢結果中一行的值,可以通過遍曆元組獲取所有行的結果。


import pymysql

db = pymysql.connect(host="host_ip", port=port, user="user_name", password="password", database="database_name")

# 創建游標對象
cursor = db.cursor()

# 執行SQL語句
cursor.execute("SELECT * FROM table_name")

# 獲取查詢結果
data = cursor.fetchall()

# 遍歷查詢結果
for row in data:
    print(row)

# 關閉連接
db.close()

三、pymysql更改數據

pymysql通過執行SQL語句來更改資料庫中的數據,可以使用INSERT、UPDATE和DELETE語句,同時還可以使用事務來保證更改數據的原子性。

以下代碼演示了使用pymysql插入數據的過程:


import pymysql

db = pymysql.connect(host="host_ip", port=port, user="user_name", password="password", database="database_name")

# 創建游標對象
cursor = db.cursor()

# SQL語句
sql = "INSERT INTO table_name (column1, column2, column3) VALUES (%s, %s, %s)"

# 數據
values = [('value1', 'value2', 'value3'), ('value4', 'value5', 'value6')]

try:
    # 開始事務
    db.begin()

    # 執行SQL語句
    cursor.executemany(sql, values)

    # 提交事務
    db.commit()

    # 獲取受影響的行數
    print("成功插入了%d條數據" % cursor.rowcount)

except Exception as e:
    # 回滾事務
    db.rollback()

    print("插入數據失敗,原因:{}".format(e))

finally:
    # 關閉連接
    db.close()

四、pymysql查詢數據

pymysql通過執行SELECT語句來查詢資料庫中的數據,可以使用WHERE子句來篩選數據,同時還可以使用ORDER BY子句來對查詢結果進行排序。


import pymysql

db = pymysql.connect(host="host_ip", port=port, user="user_name", password="password", database="database_name")

# 創建游標對象
cursor = db.cursor()

# SQL語句
sql = "SELECT * FROM table_name WHERE column1 = %s ORDER BY column2 DESC"

# 數據
value = 'value'

try:
    # 執行SQL語句
    cursor.execute(sql, value)

    # 獲取查詢結果
    data = cursor.fetchall()

    # 遍歷查詢結果
    for row in data:
        print(row)

except Exception as e:
    print("查詢數據失敗,原因:{}".format(e))

finally:
    # 關閉連接
    db.close()

五、pymysql連接資料庫

pymysql連接MySQL資料庫非常簡單,只需要調用connect()方法即可,該方法支持多個參數,包括host、port、user、passowrd和database等參數。


import pymysql

# 連接MySQL資料庫
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', database='test')

# 關閉連接
db.close()

六、pymysql鏈接資料庫

pymysql鏈接MySQL資料庫時,如果出現用戶名或者密碼錯誤、埠號不匹配等問題時,會出現錯誤提示信息。


import pymysql

try:
    # 連接MySQL資料庫
    db = pymysql.connect(host='localhost', port=3307, user='root', password='123456', database='test')

except Exception as e:
    print("連接資料庫失敗,原因:{}".format(e))

七、pymysql獲取欄位和數據

pymysql可以從查詢結果中獲取欄位和數據,通過description屬性獲取查詢結果的欄位信息,通過fetchall方法獲取查詢結果的數據。


import pymysql

# 連接MySQL資料庫
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', database='test')

# 創建游標對象
cursor = db.cursor()

# SQL語句
sql = "SELECT * FROM table_name"

try:
    # 執行SQL語句
    cursor.execute(sql)

    # 獲取欄位信息
    fields = cursor.description

    # 列印欄位信息
    for field in fields:
        print(field[0], end='\t')

    print()

    # 獲取查詢結果
    data = cursor.fetchall()

    # 遍歷查詢結果
    for row in data:
        print(row)

except Exception as e:
    print("獲取欄位和數據失敗,原因:{}".format(e))

finally:
    # 關閉連接
    db.close()

八、pymysql修改資料庫數據

pymysql通過執行UPDATE和DELETE語句來修改資料庫中的數據,可以使用WHERE子句來修改和刪除指定數據。


import pymysql

# 連接MySQL資料庫
db = pymysql.connect(host='localhost', port=3306, user='root', password='password', database='test')

# 創建游標對象
cursor = db.cursor()

try:
    # 開始事務
    db.begin()

    # 修改數據
    sql = "UPDATE table_name SET column1 = %s WHERE column2 = %s"
    value = ('new_value', 'value')

    cursor.execute(sql, value)

    # 提交事務
    db.commit()

    print("數據修改成功!")

except Exception as e:
    # 回滾事務
    db.rollback()
    
    print("數據修改失敗,原因:{}".format(e))

finally:
    # 關閉連接
    db.close()

九、pymysql連接資料庫失敗

如果pymysql連接MySQL資料庫時出現連接超時、連接拒絕、連接錯誤等問題時,會出現錯誤提示信息。


import pymysql

try:
    # 連接MySQL資料庫
    db = pymysql.connect(host='localhost', port=3307, user='root', password='123456', database='test', connect_timeout=3)

except Exception as e:
    print("連接MySQL資料庫失敗,原因:{}".format(e))

總結

本篇文章主要對pymysql插入數據進行了詳細的講解,通過對連接遠程資料庫、查詢出來的數據格式、更改數據、查詢數據、連接資料庫、鏈接資料庫、獲取欄位和數據、修改資料庫數據以及連接資料庫失敗這幾個方面進行了詳細的闡述,希望能夠對大家使用pymysql插入數據有所幫助。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230412.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 18:17
下一篇 2024-12-10 18:17

相關推薦

  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29
  • Python兩張表數據匹配

    本篇文章將詳細闡述如何使用Python將兩張表格中的數據匹配。以下是具體的解決方法。 一、數據匹配的概念 在生活和工作中,我們常常需要對多組數據進行比對和匹配。在數據量較小的情況下…

    編程 2025-04-29
  • Python爬取公交數據

    本文將從以下幾個方面詳細闡述python爬取公交數據的方法: 一、準備工作 1、安裝相關庫 import requests from bs4 import BeautifulSou…

    編程 2025-04-29
  • Python數據標準差標準化

    本文將為大家詳細講述Python中的數據標準差標準化,以及涉及到的相關知識。 一、什麼是數據標準差標準化 數據標準差標準化是數據處理中的一種方法,通過對數據進行標準差標準化可以將不…

    編程 2025-04-29
  • 如何使用Python讀取CSV數據

    在數據分析、數據挖掘和機器學習等領域,CSV文件是一種非常常見的文件格式。Python作為一種廣泛使用的編程語言,也提供了方便易用的CSV讀取庫。本文將介紹如何使用Python讀取…

    編程 2025-04-29
  • Python根據表格數據生成折線圖

    本文將介紹如何使用Python根據表格數據生成折線圖。折線圖是一種常見的數據可視化圖表形式,可以用來展示數據的趨勢和變化。Python是一種流行的編程語言,其強大的數據分析和可視化…

    編程 2025-04-29
  • Python如何打亂數據集

    本文將從多個方面詳細闡述Python打亂數據集的方法。 一、shuffle函數原理 shuffle函數是Python中的一個內置函數,主要作用是將一個可迭代對象的元素隨機排序。 在…

    編程 2025-04-29

發表回復

登錄後才能評論