SqlAlchenmy基本使用
#简单查询
print(session.query(User).all())
print(session.query(User.name, User.fullname).all())
print(session.query(User, User.name).all()) #带条件查询
print(session.query(User).filter_by(name='user1').all())
print(session.query(User).filter(User.name == "user").all())
print(session.query(User).filter(User.name.like("user%")).all()) #多条件查询
print(session.query(User).filter(and_(User.name.like("user%"), User.fullname.like("first%"))).all())
print(session.query(User).filter(or_(User.name.like("user%"), User.password != None)).all()) #sql过滤
print(session.query(User).filter("id>:id").params(id=1).all()) #关联查询
print(session.query(User, Address).filter(User.id == Address.user_id).all())
print(session.query(User).join(User.addresses).all())
print(session.query(User).outerjoin(User.addresses).all()) #聚合查询
print(session.query(User.name, func.count('*').label("user_count")).group_by(User.name).all())
print(session.query(User.name, func.sum(User.id).label("user_id_sum")).group_by(User.name).all()) #子查询
stmt = session.query(Address.user_id, func.count('*').label("address_count")).group_by(Address.user_id).subquery()
print(session.query(User, stmt.c.address_count).outerjoin((stmt, User.id == stmt.c.user_id)).order_by(User.id).all()) #exists
print(session.query(User).filter(exists().where(Address.user_id == User.id)))
print(session.query(User).filter(User.addresses.any()))
多条件查询例子:
from sqlalchemy import and_
words = ['%三%', '%猫%']
rule = and_(*[table.u_name.like(w) for w in words])
table.query.filter(rule)
限制返回字段查询
person = session.query(Person.name, Person.created_at,
Person.updated_at).filter_by(name="zhongwei").order_by(
Person.created_at).first()
记录总数查询:
from sqlalchemy import func # count User records, without
# using a subquery.
session.query(func.count(User.id)) # return count of user "id" grouped
# by "name"
session.query(func.count(User.id)).\
group_by(User.name) from sqlalchemy import distinct # count distinct "name" values
session.query(func.count(distinct(User.name)))
Sqlalchemy查询的like mysql order by desc 倒叙排例子
res =Session.query(OnlineHistoryInfo).order_by(OnlineHistoryInfo.id.desc()).all() for i in res:
print (i.task_run_user,i.id)
#网上的例子
query = (model.Session.query(model.Entry)
.join(model.ClassificationItem)
.join(model.EnumerationValue)
.filter_by(id=c.row.id)
.order_by(model.Entry.amount.desc())
)
SqlAlchenmy基本使用的更多相关文章
- flask 与 SQLAlchemy的使用
flask 与 SQLAlchemy的使用 安装模块 pip install flask-sqlalchemy 在单个python中与flask使用 # 文件名:manage.py from flas ...
随机推荐
- 6.docker的私用镜像仓库registry
docker方式启动镜像仓库 / # cat /etc/docker/registry/config.yml version: 0.1 log: fields: service: registry s ...
- vpx
VPX 编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! VPX总线是VITA(VME International Trade Association, VME国际贸易协 ...
- 离线安装Python包hickle,easydict
安装hickle source: https://github.com/telegraphic/hickle 1. cd to your downloaded hickle directory 2. ...
- 在没有 Emacs 的情况下使用 Org 模式
导读 每到年初似乎总有这么一个疯狂的冲动来寻找提高生产率的方法.新年决心,正确地开始一年的冲动,以及“向前看”的态度都是这种冲动的表现.软件推荐通常都会选择闭源和专利软件.但这不是必须的. 这是我 2 ...
- Qt 使用openGL 渲染NV12格式的视频
直接上代码 Nv12Render.h #ifndef NV12RENDER_H #define NV12RENDER_H #include <QOpenGLFunctions> #incl ...
- Java虚拟机构建对象过程小记
Java对象的内存分布 Java对象的构建 Java程序中,新建对象,除了常见的new语句之外,还可以通过反射机制.Object.clone方法.反序列化以及Unsafe.allocateInstan ...
- Python测试Post请求
原有: #coding:utf-8 import requests def request(title, content): datas = {"title":title,&quo ...
- this view is not constrainted......
this view is not constrainted 解决方案: <EditText android:id="@+id/editText" android:layout ...
- npm、webpack、vue-cli
Node.js npm 什么是Node.js 以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome V8 引擎的. npm 是Node.js 的包管理 ...
- 对如下字符串(234453)[234]{2324}分析它的括号使用是否正确,括号匹配(Java实现)
我的一种思路是递归: private static String s = "(2344[)]53[234]{2324}"; private static boolean f(int ...