📜  讨论-SQLAlchemy(1)

📅  最后修改于: 2023-12-03 15:28:05.514000             🧑  作者: Mango

SQLAlchemy介绍

SQLAlchemy是一款 Python 编程语言下的 SQL 工具包和 ORM 系统。简单来说,SQLAlchemy是Python编程语言下的一款数据库映射工具。

SQLAlchemy提供了一整套关于数据库的高级抽象接口,同时还配备了一个强大的SQL生成器,用于基于这些接口进行高效的数据库查询与操作。SQLAlchemy ORM 则提供了易于使用的数据模型开发模式。

特性
  • 简单易用的对象关系映射 (ORM)。
  • 易于使用的 SQL 写构建器,适配多数主流数据库。
  • API丰富,可通过其提供的表达式语言操作 SQL。
  • 支持原生SQL和SQL表达式。
  • 大量的扩展,包括 Alembic 数据库迁移框架、框架集成包等等。
  • 模块化的组件化架构,灵活添加数据库适配器、类型转换器等等。
安装

下载SQLAlchemy(推荐使用pip)

pip install sqlalchemy
连接数据库
from sqlalchemy import create_engine

# SQLite数据库
engine = create_engine('sqlite:///some.db')

# MySQL数据库
engine = create_engine('mysql+pymysql://user:passwd@host/dbname)

# PostgreSQL数据库
engine = create_engine('postgresql://user:passwd@host/dbname')
增删改查
from sqlalchemy.orm import sessionmaker
from sqlalchemydemo.models import Course
from sqlalchemydemo import engine

# 初始化数据库连接
Session_class = sessionmaker(bind=engine)
Session = Session_class()

# 添加一条记录
course = Course(name='English', teacher='Bob', price=388)
Session.add(course)

# 批量添加多条记录
data = [
    Course(name='Math', teacher='Alice', price=288),
    Course(name='Chinese', teacher='Mike', price=300),
    Course(name='Python', teacher='Jack', price=888)
]
Session.add_all(data)

# 提交到数据库
Session.commit()

# 关闭session
Session.close()
from sqlalchemy.orm import sessionmaker
from sqlalchemydemo.models import Course
from sqlalchemydemo import engine

# 初始化数据库连接
Session_class = sessionmaker(bind=engine)
Session = Session_class()

# 删除id=2的记录
course = Session.query(Course).filter(Course.id == 2).first()
Session.delete(course)

# 删除价格低于300的记录
Session.query(Course).filter(Course.price < 300).delete()

# 提交到数据库
Session.commit()

# 关闭session
Session.close()
from sqlalchemy.orm import sessionmaker
from sqlalchemydemo.models import Course
from sqlalchemydemo import engine

# 初始化数据库连接
Session_class = sessionmaker(bind=engine)
Session = Session_class()

# 修改id=1的记录
course = Session.query(Course).filter(Course.id == 1).first()
course.teacher = 'Jerry'

# 提交到数据库
Session.commit()

# 关闭session
Session.close()
from sqlalchemy.orm import sessionmaker
from sqlalchemydemo.models import Course
from sqlalchemydemo import engine

# 初始化数据库连接
Session_class = sessionmaker(bind=engine)
Session = Session_class()

# 查询第1条记录
course = Session.query(Course).first()

# 查询id=1的记录
course = Session.query(Course).filter(Course.id == 1).first()

# 查询所有记录
courses = Session.query(Course).all()

# 查询前3条记录
courses = Session.query(Course).limit(3).all()

# 查询第2条至第4条记录
courses = Session.query(Course).offset(2).limit(3).all()

# 查询记录数
count = Session.query(Course).count()

# 提交到数据库
Session.commit()

# 关闭session
Session.close()
结语

SQLAlchemy是Python编程语言下的一款优秀的数据库映射工具,可以方便地操作多种不同类型的数据库,如果你需要开发关系型数据库应用程序,那么可以试试SQLAlchemy。