MySQL是一種常見的關係型數據庫,而Python是一種編程語言,兩者之間通過一些特定的庫進行連接,以實現對MySQL數據庫的增刪改查操作。在本文中,我們將詳細介紹如何使用Python連接MySQL數據庫,並進行增刪改查操作。
一、連接MySQL數據庫
在使用Python對MySQL進行操作之前,首先需要連接到數據庫。Python中的MySQL連接庫主要有兩種,一種是MySQLdb
,一種是PyMySQL
。這裡我們將以PyMySQL
為例進行介紹,在使用之前需要先通過pip install PyMySQL
命令進行安裝。
import pymysql
# 建立數據庫連接
conn = pymysql.connect(
host='localhost', # 連接地址
port=3306, # 端口號
user='root', # 數據庫用戶名
password='password', # 數據庫密碼
database='test', # 數據庫名稱
charset='utf8', # 字符編碼
)
# 關閉數據庫連接
conn.close()
以上代碼中,我們使用pymysql.connect()
方法進行連接,需要傳入連接所需的參數:連接地址、端口號、數據庫用戶名、數據庫密碼、數據庫名稱、字符編碼。建立連接後,我們可以使用conn.close()
方法進行關閉。
二、查詢數據
在連接MySQL數據庫之後,我們可以對其中的數據進行查詢。查詢數據需要使用游標,Python中的pymysql
庫提供了兩種游標:普通游標和字典游標。普通游標返回的結果是一個元組,而字典游標返回的結果是一個字典。
1. 普通游標
import pymysql
# 建立數據庫連接
conn = pymysql.connect(
host='localhost', # 連接地址
port=3306, # 端口號
user='root', # 數據庫用戶名
password='password', # 數據庫密碼
database='test', # 數據庫名稱
charset='utf8', # 字符編碼
)
# 建立游標
cur = conn.cursor()
# 執行查詢
sql = "SELECT * FROM users"
cur.execute(sql)
# 獲取結果集
results = cur.fetchall()
for row in results:
id = row[0]
name = row[1]
age = row[2]
print("id=%d, name=%s, age=%d" % (id, name, age))
# 關閉游標
cur.close()
# 關閉數據庫連接
conn.close()
以上代碼中, first we create connent and create cursor,then execute query using cursor.execute and then get the reslt retunred using cursor.fetchall.
2. 字典游標
import pymysql
# 建立數據庫連接
conn = pymysql.connect(
host='localhost', # 連接地址
port=3306, # 端口號
user='root', # 數據庫用戶名
password='password', # 數據庫密碼
database='test', # 數據庫名稱
charset='utf8', # 字符編碼
)
# 建立字典游標
cur = conn.cursor(pymysql.cursors.DictCursor)
# 執行查詢
sql = "SELECT * FROM users"
cur.execute(sql)
# 獲取結果集
results = cur.fetchall()
for row in results:
id = row['id']
name = row['name']
age = row['age']
print("id=%d, name=%s, age=%d" % (id, name, age))
# 關閉游標
cur.close()
# 關閉數據庫連接
conn.close()
以上代碼中,我們通過傳入pymysql.cursors.DictCursor
參數,創建了字典游標,然後執行查詢,獲取結果集,並對結果集進行遍歷輸出。
三、插入數據
在數據庫中插入數據需要使用游標,首先需要創建游標,然後執行插入語句,最後提交事務。
import pymysql
# 建立數據庫連接
conn = pymysql.connect(
host='localhost', # 連接地址
port=3306, # 端口號
user='root', # 數據庫用戶名
password='password', # 數據庫密碼
database='test', # 數據庫名稱
charset='utf8', # 字符編碼
)
# 建立游標
cur = conn.cursor()
# 執行插入
sql = "INSERT INTO users(name,age) VALUES(%s,%s)"
cur.execute(sql, ('Tom', 18))
# 提交事務
conn.commit()
# 關閉游標
cur.close()
# 關閉數據庫連接
conn.close()
以上代碼中,我們創建游標,然後通過cur.execute()
方法執行插入語句,並向其中傳入需要插入的數據。最後,我們需要執行conn.commit()
方法來提交事務。如果不執行conn.commit()
方法,則不會對數據庫產生任何修改。
四、更新數據
更新數據與插入數據類似,需要通過游標來實現。需要注意的是,更新語句需要指定更新的數據條件。
import pymysql
# 建立數據庫連接
conn = pymysql.connect(
host='localhost', # 連接地址
port=3306, # 端口號
user='root', # 數據庫用戶名
password='password', # 數據庫密碼
database='test', # 數據庫名稱
charset='utf8', # 字符編碼
)
# 建立游標
cur = conn.cursor()
# 執行更新
sql = "UPDATE users SET age=%s WHERE name=%s"
cur.execute(sql, (20, 'Tom'))
# 提交事務
conn.commit()
# 關閉游標
cur.close()
# 關閉數據庫連接
conn.close()
以上代碼中,我們通過游標執行更新語句,其中更新語句指定了更新數據的條件。然後需要執行conn.commit()
方法提交事務。
五、刪除數據
刪除數據需要使用游標,同樣需要指定刪除數據的條件,並提交事務。
import pymysql
# 建立數據庫連接
conn = pymysql.connect(
host='localhost', # 連接地址
port=3306, # 端口號
user='root', # 數據庫用戶名
password='password', # 數據庫密碼
database='test', # 數據庫名稱
charset='utf8', # 字符編碼
)
# 建立游標
cur = conn.cursor()
# 執行刪除
sql = "DELETE FROM users WHERE name=%s"
cur.execute(sql, ('Tom',))
# 提交事務
conn.commit()
# 關閉游標
cur.close()
# 關閉數據庫連接
conn.close()
以上代碼中,我們通過游標執行刪除語句,其中刪除語句指定了刪除數據的條件。然後需要執行conn.commit()
方法提交事務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/183001.html