Python使用pymysql和sqlalchemy訪問MySQL的區(qū)別
1. 兩個(gè)數(shù)據(jù)庫連接工具的對(duì)比
pymysql和sqlalchemy是兩個(gè)Python中經(jīng)常用于與MySQL數(shù)據(jù)庫交互的庫。都可以連接MySQL數(shù)據(jù)庫,但它們有明顯的區(qū)別。
(1)特點(diǎn)
pymysql是一個(gè)Python模塊,它可以用作一個(gè)獨(dú)立的Python文件或作為Python程序中的一個(gè)模塊。安裝pymysql之后,需要導(dǎo)入它并連接到一個(gè)MySQL數(shù)據(jù)庫,以開始與之交互。
sqlalchemy是一個(gè)Python庫和一個(gè)ORM(對(duì)象關(guān)系映射器)。通過SQLAlchemy,可以將Python對(duì)象映射到MySQL數(shù)據(jù)庫表中。這種方法可以使MySQL與Python代碼的交互更直觀和更簡(jiǎn)單。
SQLAlchemy的優(yōu)點(diǎn):
減少SQL語句的使用,使代碼、模型更加直觀、清晰;
性能損耗小;設(shè)計(jì)靈活;可移植性強(qiáng);
(2)區(qū)別
pymysql已經(jīng)足夠適合連接到MySQL數(shù)據(jù)庫并執(zhí)行基本的SQL查詢和命令,而sqlalchemy提供了更多的功能。
sqlalchemy包括ORM,它負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)換和類型處理。sqlalchemy ORM使用Python類來表示數(shù)據(jù)庫表,這使得查詢和數(shù)據(jù)處理變得無比容易。此外,sqlalchemy還支持高級(jí)查詢和SQL語句生成,可以在處理復(fù)雜查詢時(shí)更加便捷。
2.訪問方式
(1)pymysql
import pymysql
host = "127.0.0.1:3306"
user = "root"
password = "root"
database = "test"
mysql_db = pymysql.connect(host=host,
user=user,
password=password,
database=database,
charset="utf8")
mysql_cursor = mysql_db.cursor()
mysql_cursor.execute('select * from mytable')
cur_rows = mysql_cursor.fetchall()
mysql_cursor.close()
(2)sqlalchemy
from sqlalchemy import create_engine
host = "127.0.0.1:3306"
user = "root"
password = "root"
database = "test"
mysql_engine = create_engine("mysql+pymysql://{user}:{password}@{host}/{database}")
result = mysql_engine.execute('select * from mytable')
# 輸出查詢結(jié)果
for row in result:
print(row)
3.Python對(duì)象映射SQLAlchemy
dataframe對(duì)象可以通過SQLAlchemy直接保存到MySQL數(shù)據(jù)庫。
import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(20).reshape(5,4),
columns=['a','b','c','d'],
index=[1,2,3,4,5])
df.index.name = 'idx'
df.to_sql(
'test_drop', # 定義MySQL表名
mysql_engine ,
index=True, # df 是否包括索引列
if_exists='append', # 追加數(shù)據(jù)模式
chunksize=20000) # 批量20000條
直接將dataframe保存到MySQL數(shù)據(jù)庫,索引和表結(jié)構(gòu)都字段建成。文章來源:http://www.zghlxwxcb.cn/news/detail-657002.html
idx bigint(20) YES MUL
a bigint(20) YES
b bigint(20) YES
c bigint(20) YES
d bigint(20) YES
更多SQLAlchemy的ORM操作文章來源地址http://www.zghlxwxcb.cn/news/detail-657002.html
到了這里,關(guān)于Python使用pymysql和sqlalchemy訪問MySQL的區(qū)別的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!