📅  最后修改于: 2023-12-03 15:28:05.514000             🧑  作者: Mango
SQLAlchemy是一款 Python 编程语言下的 SQL 工具包和 ORM 系统。简单来说,SQLAlchemy是Python编程语言下的一款数据库映射工具。
SQLAlchemy提供了一整套关于数据库的高级抽象接口,同时还配备了一个强大的SQL生成器,用于基于这些接口进行高效的数据库查询与操作。SQLAlchemy ORM 则提供了易于使用的数据模型开发模式。
下载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。