博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqlalchemy在python中的使用(关于查询)二
阅读量:6905 次
发布时间:2019-06-27

本文共 2564 字,大约阅读时间需要 8 分钟。

在上一小节中介绍了sqlalchemy的安装及基本的使用,本小节介绍查询功能

一、查询结果

  • 1、all()查询全部数据

    from sqlalchemy_demo.connect import dbSessionfrom sqlalchemy_demo.modules.user_module import UserModuledef query_user():    rows = dbSession.query(UserModule).all()    print(rows)if __name__ == "__main__":    query_user()复制代码
  • 2、first()查询第一条数据

    ...def query_user():    rows = dbSession.query(UserModule).first()    print(rows)...复制代码
  • 3、也可使用all()查询后取下标的方式取数据

  • 4、根据想要的字段返回数据

    def query_user():	 # 只返回user_name, password字段    rows = dbSession.query(UserModule.user_name, UserModule.password).filter(UserModule.id == 1).first()    print(rows)复制代码

二、数据的过滤

  • 1、filter()添加过滤条件(注意返回的依然是列表)

    def query_user():    rows = dbSession.query(UserModule).filter(UserModule.id == 1).first()    print(rows)复制代码
  • 2、使用filter_by过滤

    def query_user():    rows = dbSession.query(UserModule).filter_by(id=1).first()    print(rows)复制代码
  • 3、关于filterfilter_by的区别

    • 1.filter中需要添加类对象,filter_by不需要
    • 2.filter_by中只能添加等于的条件,不能添加,不等于、大于小于等条件,filter没有这个限制

三、模糊查询

  • 1、like的使用

    def query_user():	 # 查询以王开头的user_name字段    rows = dbSession.query(UserModule).filter(UserModule.user_name.like('王%')).all()    # 查询以五结尾的    # rows = dbSession.query(UserModule).filter(UserModule.user_name.like('%五')).all()    print(rows)复制代码
  • 2、notlike的使用(与like相反)

    def query_user():    rows = dbSession.query(UserModule).filter(UserModule.user_name.notlike('%五')).all()    print(rows)复制代码
  • 3、in_([])在什么里面

    def query_user():   rows = dbSession.query(UserModule).filter(UserModule.user_name.in_(['王五', '马六'])).all()   print(rows)复制代码
  • 4、notin_([])不包括的

  • 5、is_()精确查找

    def query_user():    rows = dbSession.query(UserModule).filter(UserModule.user_name.is_(None)).all()    print(rows)复制代码
  • 6、isnot()精确查找

四、查询结果

  • 1、all()查询到全部

  • 2、limit()限制条数

    ...def query_user():    rows = dbSession.query(UserModule).limit(2).all()    print(rows)...复制代码
  • 3、offset()偏移

    ...def query_user():    rows = dbSession.query(UserModule).offset(2).all()    print(rows)...复制代码
  • 4、slice()切片的使用

    def query_user():    rows = dbSession.query(UserModule).slice(1, 4).all()    print(rows)复制代码
  • 5、one()查找一条,如果有多条就会报错

    def query_user():    rows = dbSession.query(UserModule).filter_by(id=1).one()    print(rows)复制代码

五、排序的使用

  • 1、导包

    from sqlalchemy import desc, asc复制代码
  • 2、默认升序排序

    def query_user():    rows = dbSession.query(UserModule).order_by(UserModule.id).all()    print(rows)复制代码
  • 3、使用降序

    def query_user():    rows = dbSession.query(UserModule).order_by(desc(UserModule.id)).all()    print(rows)复制代码
  • 4、order_bylimit的使用

    def query_user():    rows = dbSession.query(UserModule).order_by(desc(UserModule.id)).limit(2).all()    print(rows)复制代码

转载地址:http://owmdl.baihongyu.com/

你可能感兴趣的文章
安装opencv以及遇到的坑
查看>>
C# 匿名函数
查看>>
MySQL锁系列2 表锁
查看>>
Lua中的closure(闭合函数)
查看>>
一个int类型引发的bug
查看>>
js 片段 - 控制类型为 text 的 input 类型
查看>>
CentOS安装中文支持(linux中文文件名乱码)
查看>>
[原创]ExtAspNet秘密花园(二) — 一切从头开始
查看>>
Delphi 常用控件之TlistView总结
查看>>
QUnit系列 -- 1.介绍单元测试(上)
查看>>
开发API文档相关问题(*.chm)
查看>>
分布拟合——正态/拉普拉斯/对数高斯/瑞利 分布
查看>>
隐藏执行批处理bat文件
查看>>
函数y=sin(1/x)曲线
查看>>
WebStorm for Mac(Web 前端开发工具)破解版安装
查看>>
computational biology | Bioinformatician | 开发者指南
查看>>
从0开始--倒序输出。
查看>>
吉特仓库管理系统-.NET打印问题总结
查看>>
POJ 3026 Borg Maze(bfs+最小生成树)
查看>>
sqlplus 返回2 由于命令后没有加分号
查看>>