Python操作MySQL:pymysql与sqlalchemy实战指南

2 下载量 12 浏览量 更新于2024-09-03 收藏 167KB PDF 举报
本文主要讲解了Python中对MySQL数据库进行操作的两种常见方法,即使用pymysql和sqlalchemy库。通过实例展示了如何创建、查看、修改和删除表,以及如何插入、查看、修改和删除数据。文章还包含了对pymysql安装及基本使用的介绍。 在Python中操作MySQL数据库,pymysql是一个常用的选择,它提供了类似命令行的交互方式。首先,确保已安装pymysql库,可以通过pip3 install pymysql进行安装。使用pymysql时,需要导入模块,然后建立与数据库的连接,如`pymysql.connect(host="localhost", port=3306, user='root', passwd='123456', db='python_test', charset='utf8')`。接着,创建游标对象,它是执行SQL语句和处理查询结果的关键。执行SQL语句使用`cursor.execute(SQL语句)`,如果涉及数据的增删改,需要调用`commit()`来提交事务,或`rollback()`来撤销操作。 对于数据操作,`execute()`函数可以处理单条SQL语句,而`executemany()`则用于一次性执行多条SQL语句,接收一个SQL语句和一组参数列表。例如,插入多条数据时,可以使用如下格式:`cursor.executemany("INSERT INTO table_name VALUES (%s, %s)", [(value1, value2), (value3, value4), ...])`。 另外,sqlalchemy是一个更高级的ORM(对象关系映射)库,它可以将Python类与数据库表对应,使得操作数据库更加方便。使用sqlalchemy,首先需要创建Engine对象,表示与数据库的连接,如`from sqlalchemy import create_engine; engine = create_engine('mysql+pymysql://root:123456@localhost/python_test')`。然后,定义Python类来映射数据库表,使用`declarative_base()`创建基类,并定义类属性作为列名。例如: ```python from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String Base = declarative_base() class User(Base): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) email = Column(String(120)) ``` 接着,使用Session对象来执行数据库操作,如创建会话`session = Session(bind=engine)`,并进行增删查改。例如,插入数据: ```python new_user = User(id=1, name='John Doe', email='john@example.com') session.add(new_user) session.commit() ``` sqlalchemy提供了面向对象的方式来操作数据库,使得代码更易读、维护性更强。 pymysql适合于简单的数据库操作,而sqlalchemy更适合于复杂的业务逻辑,且具有更好的数据库抽象层。根据项目需求,开发者可以选择适合自己的方式来与MySQL数据库进行交互。