专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

sqlalchemy在python中的使用(关于查询)二

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

一、查询结果

  • 1、all()查询全部数据
    from sqlalchemy_demo.connect import dbSession
    from sqlalchemy_demo.modules.user_module import UserModule

    def 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)

未经允许不得转载:搜云库技术团队 » sqlalchemy在python中的使用(关于查询)二

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们