order_by,filter的语法。

用久了才会熟悉。

Session = sessionmaker(bind=engine)
session = Session()

print(session.query(Cookie.cookie_name, Cookie.quantity).first())

for cookie in session.query(Cookie).order_by(desc(Cookie.quantity)):
    print('{:3} - {}'.format(cookie.quantity, cookie.cookie_name))

# query = session.query(Cookie).order_by(Cookie.quantity)[:2]
query = session.query(Cookie).order_by(Cookie.quantity).limit(4)
print([result.cookie_name for result in query])

inv_count = session.query(func.sum(Cookie.quantity)).scalar()
print(inv_count)

rec_count = session.query(func.count(Cookie.cookie_name)).first()
print(rec_count)

rec_count = session.query(func.count(Cookie.cookie_name).label('inventory_count')).first()
print(rec_count.keys())
print(rec_count.inventory_count)

record = session.query(Cookie).filter(Cookie.cookie_name == 'chocolate chip').first()
print record

record = session.query(Cookie).filter_by(cookie_name='chocolate chip').first()
print(record)

query = session.query(Cookie).filter(Cookie.cookie_name.like('%chocolate%'))
for record in query:
    print(record.cookie_name)

results = session.query(Cookie.cookie_name, 'SKU-' + Cookie.cookie_sku).all()
for row in results:
    print(row)

query = session.query(Cookie.cookie_name, cast((Cookie.quantity * Cookie.unit_cost),
                                               Numeric(12, 2)).label('inv_cost'))
for result in query:
    print('{} - {}'.format(result.cookie_name, result.inv_cost))

query = session.query(Cookie).filter(
    Cookie.quantity > 23,
    Cookie.unit_cost < 0.40
    )
for result in query:
    print(result.cookie_name)

query = session.query(Cookie).filter(
    or_(
        Cookie.quantity.between(10, 50),
        Cookie.cookie_name.contains('chip')
        )
    )
for result in query:
    print(result.cookie_name)

输出:

()
 - oatmeal raisin
  - peanut butter
  - chocolate chip
  - chocolate chip
  - chocolate chip
  - chocolate chip
   - dark chocolate chip
   - molasses
   - dark chocolate chip
   - molasses
['dark chocolate chip', 'molasses', 'dark chocolate chip', 'molasses']

(,)
['inventory_count']

Cookie(cookie_name=, unit_cost=0.50)
Cookie(cookie_name=, unit_cost=0.50)
chocolate chip
chocolate chip
chocolate chip
dark chocolate chip
chocolate chip
dark chocolate chip
('chocolate chip', 'SKU-CC01')
('chocolate chip', 'SKU-CC01')
('chocolate chip', 'SKU-CC01')
('dark chocolate chip', 'SKU-CC02')
('molasses', 'SKU-MOL01')
('chocolate chip', 'SKU-CC01')
('dark chocolate chip', 'SKU-CC02')
('molasses', 'SKU-MOL01')
('peanut butter', 'SKU-PB01')
('oatmeal raisin', 'SKU-EWW01')
chocolate chip - 6.00
chocolate chip - 6.00
chocolate chip - 6.00
dark chocolate chip - 0.75
molasses - 0.80
chocolate chip - 6.00
dark chocolate chip - 0.75
molasses - 0.80
peanut butter - 6.00
oatmeal raisin - 100.00
peanut butter
chocolate chip
chocolate chip
chocolate chip
dark chocolate chip
chocolate chip
dark chocolate chip
peanut butter

SQLAlchemy ORM高级查询之过滤,排序的更多相关文章

  1. django orm高级查询 F表达式和Q表达式以及分组annotate

    1.关联关系映射及查询1.1django默认开启延迟加载所有多对1和1对1如果不使用select_related(),需要会延迟加载获取到相关对象,因为延迟可能会造成n+1次查询的问题,所以便有了se ...

  2. Oracle学习01-Oracle的基本查询和过滤排序

  3. SQLAlchemy -高级查询

    查询 # -*- coding: utf-8 -*-   from sqlalchemy.orm import sessionmaker   from SQLAlchemy.create import ...

  4. Net/NetCore/.NET5 ORM 六大查询体系 - SqlSugar 高级篇

    框架介绍 SqlSugar ORM是一款老牌国产ORM框架,生命力也比较顽强,从早期ORM不成熟阶段,一直存活到现在,我为什么要一直坚持,那是因为还有很多用户在使用,本来我能够较早推出新开源框架 ,可 ...

  5. es的查询、排序查询、分页查询、布尔查询、查询结果过滤、高亮查询、聚合函数、python操作es

    今日内容概要 es的查询 Elasticsearch之排序查询 Elasticsearch之分页查询 Elasticsearch之布尔查询 Elasticsearch之查询结果过滤 Elasticse ...

  6. springboot整合Mangodb实现crud,高级查询,分页,排序,简单聚合

    //linux安装mangodb教程:https://www.cnblogs.com/yangxiaohui227/p/11347832.html 1.引入maven 依赖 <dependenc ...

  7. java整合Elasticsearch,实现crud以及高级查询的分页,范围,排序功能,泰文分词器的使用,分组,最大,最小,平均值,以及自动补全功能

    //为index创建mapping,index相当于mysql的数据库,数据库里的表也要给各个字段创建类型,所以index也要给字段事先设置好类型: 使用postMan或者其他工具创建:(此处我使用p ...

  8. mysql多条件过滤查询之mysq高级查询

    一.什么是高级查询: ① 多条件的过滤查询 简单说,即拼接sql语句,在sql查询语句之后使用: where 条件1 and/or 条件2 and/or 条件3 - ② 分页查询 二.多条件过滤查询: ...

  9. SQLAlchemy ORM之建表与查询

    作了最基本的操作,找找感觉.. #coding=utf-8 from datetime import datetime from sqlalchemy import (MetaData, Table, ...

随机推荐

  1. Linux环境变量的添加设置

    以前一直都记着的,后来做的事情多了就什么都忘的差不多了. 在Linux中,环境变量一般添加有这么几个地方: 1./etc/profile 这个目录设置的变量为整个系统的全局变量,所有的用户通用,一般不 ...

  2. 使用shell脚本自动化对硬盘进行分区

    在Linux系统中,可以使用fdisk 对硬盘进行分区,但是要手动执行很多命令,这样使用有很麻烦,现在记一个用fdisk 的脚本自动执行. #make partition dd count= fdis ...

  3. Python 学习笔记四

    接着三继续写http://www.cnblogs.com/dzzy/p/5295019.html 文件和函数操作: from sys import argv script,input_file=arg ...

  4. Jsoup Element网页信息采集

    package zeze; import java.io.IOException; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; i ...

  5. 9.9---n皇后问题(CC150)

    思路:首先写一个检查能不能摆的函数.boolean checkValid(int[] columns,int row1, int column1);意思是row1行摆在column1列可不可以. 然后 ...

  6. NDK学习二: NDK目录结构

    NDK目录结构   NDK下载好之后目录结构如下:         目录名 描述 build   存放和编译相关的脚本文件,最外面的ndk-build就是调用该目录下的makefile文件,其中mak ...

  7. Genymotion自动化启动

      一.启动方式 命令行: player.exe --vm-name [模拟器名称]   例子: "D:\Program files\Genymobile\Genymotion\player ...

  8. STL 阅读(浅析)

    写的不错,决定那这个看下.看的还是晕. http://luohongcheng.github.io/archives/

  9. oracle/node-oracledb 数据库驱动 与 Meteor 驱动包!

    oracle/node-oracledb: https://github.com/oracle/node-oracledb   Oracle 官方维护. metstrike/meteor-oracle ...

  10. NGUI 不写一行代码实现翻拍效果

    正面UI添加一个TweenRotation组件,取消掉Active状态 ,To参数改成0,90,0) 背面UI添加一个TweenRotation组件,取消掉Active状态, From参数改成0,27 ...