sqlalchemy-Python库


SQLAlchemy 是 Python 中一个强大且灵活的 SQL 工具包和对象关系映射(ORM)库,它为使用不同数据库(如 MySQL、PostgreSQL、SQLite 等)提供了统一的接口。以下是关于 SQLAlchemy 的详细介绍:

安装

你可以使用 pip 来安装 SQLAlchemy

pip install sqlalchemy

基本使用

1. 连接数据库

以 SQLite 为例,以下是连接数据库的代码:

from sqlalchemy import create_engine

# 创建一个 SQLite 数据库引擎
engine = create_engine('sqlite:///example.db')

2. 定义模型

使用 SQLAlchemy 的 ORM 功能定义一个简单的表模型:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

# 创建基类
Base = declarative_base()

# 定义一个 User 类,继承自 Base
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

    def __repr__(self):
        return f"<User(name='{self.name}', age={self.age})>"

3. 创建表

使用定义好的模型创建数据库表:

# 创建所有表
Base.metadata.create_all(engine)

4. 插入数据

users 表中插入一条数据:

from sqlalchemy.orm import sessionmaker

# 创建会话工厂
Session = sessionmaker(bind=engine)
# 创建会话实例
session = Session()

# 创建一个新的 User 对象
new_user = User(name='John', age=30)
# 将新用户添加到会话中
session.add(new_user)
# 提交会话,将数据插入数据库
session.commit()

5. 查询数据

users 表中查询数据:

# 查询所有用户
users = session.query(User).all()
for user in users:
    print(user)

# 根据条件查询用户
john = session.query(User).filter_by(name='John').first()
print(john)

6. 更新数据

更新 users 表中的数据:

# 查询要更新的用户
user_to_update = session.query(User).filter_by(name='John').first()
# 更新用户的年龄
user_to_update.age = 31
# 提交会话,将更新保存到数据库
session.commit()

7. 删除数据

users 表中删除数据:

# 查询要删除的用户
user_to_delete = session.query(User).filter_by(name='John').first()
# 从会话中删除用户
session.delete(user_to_delete)
# 提交会话,将删除操作保存到数据库
session.commit()

总结

SQLAlchemy 提供了强大的 ORM 功能,使得在 Python 中操作数据库变得更加方便和高效。通过定义模型类,你可以将数据库表映射为 Python 类,从而使用面向对象的方式操作数据库。同时,SQLAlchemy 也支持原生 SQL 查询,让你在需要时可以直接执行 SQL 语句。