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-hant/n/230412.html