在眾多數據庫當中,我們比較熟悉的就是MySQL。MySQL也是當前較為流行的關系型數據庫。但是很多人在使用MySQL進行增刪改查時,不知道要怎么做。經常使用MySQL數據庫的人都清楚,想要進行這個操作還是非常簡單的,只需要簡單的兩步即可完成,即連接數據庫,同時在讀取CSV文件時,導入數據表;然后將查詢數據,并將數據表和計算結果導出為 CSV 文件。以下是詳細操作過程:
Step1: 安裝 PyMySQL 模塊
在正式動手之前,我們需要先安裝 PyMySQL 模塊。
(1)使用 pip 安裝, 清華鏡像:
pip install -i https://xxx pymysql
(2)使用 conda 安裝
conda install pymysql
Step2: 從 CSV 文件導入數據到 MySQL 數據表
安裝好以后,我們來進行第二步操作,從 CSV 文件導入數據到 MySQL 數據表。與內置的 SQLite 模塊一樣, PyMySQL 也遵循 DB-API 規范,因此我們前面開發的大多數代碼經過簡單修改即可使用,以下代碼中主要注釋了與 SQLite 操作的不同之處。
# 導入 pymysql 模塊
import pymysql
# 連接數據庫, 這里需要提供許多參數給 connect 方法
# host 服務器ip地址
# user 用戶名 password 密碼
# db 數據庫名稱
cn = pymysql.connect(host='localhost', user='pandas', password='pandas', db='pandas')
# port 端口 缺省值為 3306
# 新建游標對象 :和 SQLite 一樣
cur = cn.cursor()
# 建表SQL語句, 小技巧: if not exists 不會引起表已經存在的錯誤
# MySQL 使用的是 auto_increment , 注意有個下劃線
artist_create_table = """
create table if not exists artist(
id integer primary key auto_increment not null,
name varchar(255)
)
"""
try:
cur.execute(artist_create_table)
print(" 成功建表 ")
except:
pass
# 插入語句 , 使用 %(id)s 意味著我們會用字典對象替換數據
# PyMYSQL 使用的語法是 %(名稱)s
artist_insert ="""
insert into artist(id, name) values ( %(id)s, %(name)s )
"""
# 以下代碼和 SQLite 一樣
# 導入 csv 模塊
import csv
# 用 with 語法, 打開文件
with open('artist.csv', newline='') as csvfile:
# 用 DictReader 類, 方便開發
reader = csv.DictReader(csvfile)
# 按行遍歷csv 文件
for row in reader:
try:
# 按行執行 SQL 語句, 注意, 這里使用 字符串的format方法將數據替換進去
# 如果可以相信數據的安全性可以這樣做, 如果數據來自互聯網, 需要用另一種更加安全的方式
cur.execute(artist_insert, {"id": row['id'], "name": row['name'] } )
except Exception as e:
print(e)
print(" 成功導入 CSV 數據" )
# 提交事務
cn.commit()
# 關閉數據庫
cn.close()
Step3: 將數據表與計算結果導出為 CSV 文件
接下來我們使用 execute 方法獲取數據,然后輸出到 CSV 文件,與 SQLite 代碼類似:
# 導入 pymysql 模塊
import pymysql
# 連接數據庫
cn = pymysql.connect(host='localhost', user='pandas', password='pandas', db='pandas')
# 新建游標對象
cur = cn.cursor()
# 用 with語法打開文件
with open("artist_data.csv", 'w') as csvfile:
# 首先讀取 description 寫入 CSV 的第一行
# 執行 SQL 語句
results= cur.execute("select * from artist")
# 獲得 description
description = cur.description
# 新建 CSV writer 對象
writer = csv.writer(csvfile)
# 寫入列名稱
writer.writerow([ x[0] for x in description ] )
# 遍歷數據
for row in cur:
# 寫入每一行數據
writer.writerow(row)
print(" 成功寫入 CSV 文件")
通過上述介紹,PyMySQL要增刪改查要怎么做相信大家已經清楚了吧,想了解更多關于PyMySQL數據庫的信息,請繼續關注中培偉業。