首页 > 数据库技术 > 详细

Python SQLAlchemy相关操作

时间:2020-04-24 22:56:37      阅读:63      评论:0      收藏:0      [点我收藏+]

Python SQLAlchemy相关操作

from sqlalchemy import func, or_, not_

user = User(name=a)
session.add(user)
user = User(name=b)
session.add(user)
user = User(name=a)
session.add(user)
user = User()
session.add(user)
session.commit()
query = session.query(User)
print query # 显示SQL 语句
print query.statement # 同上
for user in query: # 遍历时查询
    print user.name
print query.all() # 返回的是一个类似列表的对象
print query.first().name # 记录不存在时,first() 会返回 None
# print query.one().name # 不存在,或有多行记录时会抛出异常
print query.filter(User.id == 2).first().name
print query.get(2).name # 以主键获取,等效于上句
print query.filter(id = 2).first().name # 支持字符串
query2 = session.query(User.name)
print query2.all() # 每行是个元组
print query2.limit(1).all() # 最多返回 1 条记录
print query2.offset(1).all() # 从第 2 条记录开始返回
print query2.order_by(User.name).all()
print query2.order_by(name).all()
print query2.order_by(User.name.desc()).all()
print query2.order_by(name desc).all()
print session.query(User.id).order_by(User.name.desc(), User.id).all()
print query2.filter(User.id == 1).scalar() # 如果有记录,返回第一条记录的第一个元素
print session.query(id).select_from(User).filter(id = 1).scalar()
print query2.filter(User.id > 1, User.name != a).scalar() # and
query3 = query2.filter(User.id > 1) # 多次拼接的 filter 也是 and
query3 = query3.filter(User.name != a)
print query3.scalar()
print query2.filter(or_(User.id == 1, User.id == 2)).all() # or
print query2.filter(User.id.in_((1, 2))).all() # in
query4 = session.query(User.id)
print query4.filter(User.name == None).scalar()
print query4.filter(name is null).scalar()
print query4.filter(not_(User.name == None)).all() # not
print query4.filter(User.name != None).all()
print query4.count()
print session.query(func.count(*)).select_from(User).scalar()
print session.query(func.count(1)).select_from(User).scalar()
print session.query(func.count(User.id)).scalar()
print session.query(func.count(*)).filter(User.id > 0).scalar() # filter() 中包含 User,因此不需要指定表
print session.query(func.count(*)).filter(User.name == a).limit(1).scalar() == 1 # 可以用 limit() 限制 count() 的返回数
print session.query(func.sum(User.id)).scalar()
print session.query(func.now()).scalar() # func 后可以跟任意函数名,只要该数据库支持
print session.query(func.current_timestamp()).scalar()
print session.query(func.md5(User.name)).filter(User.id == 1).scalar()
query.filter(User.id == 1).update({User.name: c})
user = query.get(1)
print user.name
user.name = d
session.flush() # 写数据库,但并不提交
print query.get(1).name
session.delete(user)
session.flush()
print query.get(1)
session.rollback()
print query.get(1).name
query.filter(User.id == 1).delete()
session.commit()
print query.get(1)

----------------------

Python SQLAlchemy相关操作

原文:https://www.cnblogs.com/hzjdpawn/p/12770509.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!