Python使用pymysql和sqlalchemy访问MySQL的区别
1. 两个数据库连接工具的对比
pymysql和sqlalchemy是两个Python中经常用于与MySQL数据库交互的库。都可以连接MySQL数据库,但它们有明显的区别。
(1)特点
pymysql是一个Python模块,它可以用作一个独立的Python文件或作为Python程序中的一个模块。安装pymysql之后,需要导入它并连接到一个MySQL数据库,以开始与之交互。
sqlalchemy是一个Python库和一个ORM(对象关系映射器)。通过SQLAlchemy,可以将Python对象映射到MySQL数据库表中。这种方法可以使MySQL与Python代码的交互更直观和更简单。
SQLAlchemy的优点:
减少SQL语句的使用,使代码、模型更加直观、清晰;
性能损耗小;设计灵活;可移植性强;
(2)区别
pymysql已经足够适合连接到MySQL数据库并执行基本的SQL查询和命令,而sqlalchemy提供了更多的功能。
sqlalchemy包括ORM,它负责数据转换和类型处理。sqlalchemy ORM使用Python类来表示数据库表,这使得查询和数据处理变得无比容易。此外,sqlalchemy还支持高级查询和SQL语句生成,可以在处理复杂查询时更加便捷。
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')
# 输出查询结果
for row in result:
print(row)
3.Python对象映射SQLAlchemy
dataframe对象可以通过SQLAlchemy直接保存到MySQL数据库。
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', # 追加数据模式
chunksize=20000) # 批量20000条
直接将dataframe保存到MySQL数据库,索引和表结构都字段建成。文章来源:https://www.toymoban.com/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操作文章来源地址https://www.toymoban.com/news/detail-657002.html
到了这里,关于Python使用pymysql和sqlalchemy访问MySQL的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!