#高级版查询操作,厉害了哦#老规矩

from my_create_table importUser,enginefrom sqlalchemy.orm importsessionmaker

Session=sessionmaker(engine)

db_session=Session()#查询数据表操作#and or

from sqlalchemy.sql importand_ , or_

ret= db_session.query(User).filter(and_(User.id > 3, User.name == 'DragonFire')).all()

ret= db_session.query(User).filter(or_(User.id < 2, User.name == 'DragonFire')).all()#查询所有数据

r1 =db_session.query(User).all()#查询数据 指定查询数据列 加入别名

r2 = db_session.query(User.name.label('username'), User.id).first()print(r2.id,r2.username) #15 NBDragon

#表达式筛选条件

r3 = db_session.query(User).filter(User.name == "DragonFire").all()#原生SQL筛选条件

r4 = db_session.query(User).filter_by(name='DragonFire').all()

r5= db_session.query(User).filter_by(name='DragonFire').first()#字符串匹配方式筛选条件 并使用 order_by进行排序

r6 = db_session.query(User).filter(text("id<:value and name=':name")).params(value=224,'>

r7 = db_session.query(User).from_statement(text("SELECT * FROM User where name=:name")).params(name='DragonFire').all()#筛选查询列#query的时候我们不在使用User ORM对象,而是使用User.name来对内容进行选取

user_list =db_session.query(User.name).all()print(user_list)for row inuser_list:print(row.name)#别名映射 name as nick

user_list = db_session.query(User.name.label("nick")).all()print(user_list)for row inuser_list:print(row.nick) #这里要写别名了

#筛选条件格式

user_list = db_session.query(User).filter(User.name == "DragonFire").all()

user_list= db_session.query(User).filter(User.name == "DragonFire").first()

user_list= db_session.query(User).filter_by(name="DragonFire").first()for row inuser_list:print(row.nick)#复杂查询

from sqlalchemy.sql importtext

user_list= db_session.query(User).filter(text("id<:value and name=':name")).params(value=3,name="DragonFire")#查询语句</p'>

from sqlalchemy.sql importtext

user_list= db_session.query(User).filter(text("select * from User id<:value and name=':name")).params(value=3,name="DragonFire")#排序' :>

user_list =db_session.query(User).order_by(User.id).all()

user_list=db_session.query(User).order_by(User.id.desc()).all()for row inuser_list:print(row.name,row.id)#其他查询条件

"""ret = session.query(User).filter_by(name='DragonFire').all()

ret = session.query(User).filter(User.id > 1, User.name == 'DragonFire').all()

ret = session.query(User).filter(User.id.between(1, 3), User.name == 'DragonFire').all() # between 大于1小于3的

ret = session.query(User).filter(User.id.in_([1,3,4])).all() # in_([1,3,4]) 只查询id等于1,3,4的

ret = session.query(User).filter(~User.id.in_([1,3,4])).all() # ~xxxx.in_([1,3,4]) 查询不等于1,3,4的

ret = session.query(User).filter(User.id.in_(session.query(User.id).filter_by(name='DragonFire'))).all() 子查询

from sqlalchemy import and_, or_

ret = session.query(User).filter(and_(User.id > 3, User.name == 'DragonFire')).all()

ret = session.query(User).filter(or_(User.id < 2, User.name == 'DragonFire')).all()

ret = session.query(User).filter(

or_(

User.id < 2,

and_(User.name == 'eric', User.id > 3),

User.extra != ""

)).all()

# select * from User where id<2 or (name="eric" and id>3) or extra != ""

# 通配符

ret = db_session.query(User).filter(User.name.like('e%')).all()

ret = db_session.query(User).filter(~User.name.like('e%')).all()

# 限制

ret = db_session.query(User)[1:2]

# 排序

ret = db_session.query(User).order_by(User.name.desc()).all()

ret = db_session.query(User).order_by(User.name.desc(), User.id.asc()).all()

# 分组

from sqlalchemy.sql import func

ret = db_session.query(User).group_by(User.extra).all()

ret = db_session.query(

func.max(User.id),

func.sum(User.id),

func.min(User.id)).group_by(User.name).all()

ret = db_session.query(

func.max(User.id),

func.sum(User.id),

func.min(User.id)).group_by(User.name).having(func.min(User.id) >2).all()"""

#关闭连接

db_session.close()

orm_select_more

mysql一对多增删改查_SQLAlchemy 增删改查 一对多 多对多相关推荐

  1. 怎么用PHP语句做出增改删查功能,mysql语句实现简单的增、删、改、查操作示例...

    本文实例讲述了mysql语句实现简单的增.删.改.查操作.分享给大家供大家参考,具体如下: 1.创建db_shop数据库,如果该数据库不存在则创建 createdatabaseifnotexistsd ...

  2. jdbc连接MySQL后的增、删、改、查

    jdbc连接MySQL MysqlUtil工具类 mysql的增.删.改.差 1.增 2.删 3.改 4.查 mysql的建表语句(直接复制到Navicat运行即可) MysqlUtil工具类 imp ...

  3. MySQL基础操作增,删,改,查。

    一,SQL语言概述 1,SQL语言是关系型数据库的标准语言,用于维护管理数据库,如数据查询,数据更新,访问控制,对象管理等功能. 2,建表 这是需要掌握的. (1)#Show databases: 查 ...

  4. Nodejs连接mysql并实现增、删、改、查

    文章目录 摘要 一.准备 二.建库并插入5条记录 三.先测试一下环境 1. 首先需要安装nodejs 的mysql包 2.编写nodejs与mysql交互的代码 3.运行结果 四.Node.js结合M ...

  5. python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)...

    python操作mysql⑥新闻管理后台功能的完善(增.删.改.查) 安装表单验证 D:\python\python_mysql_redis_mongodb\version02>pip inst ...

  6. Linux环境下MySQL基础命令(3)----增、删、改、查语句

    MySQL中的增.删.改.查命令是最基础的语句,通常应用在对表内数据的维护工作中.本文是对mysql数据库name库中的users表进行实例演示.name库以及users表均为本人建立,并非自带. 1 ...

  7. shell处理mysql增、删、改、查

    shell处理mysql增.删.改.查 引言 这几天做一个任务,比对两个数据表中的数据,昨天用PHP写了一个版本,但考虑到有的机器没有php或者php没有编译mysql扩展,就无法使用mysql系列的 ...

  8. Nodejs连接mysql的增、删、改、查操作

    一,创建数据库 Source Database : my_news_test SET FOREIGN_KEY_CHECKS=0;-- ---------------------------- -- T ...

  9. SpringBoot增和MongoDB实现增删改查、复合查询

    SpringBoot增和MongoDB实现增删改查.复合查询 依赖 <dependency><groupId>org.springframework.boot</grou ...

最新文章

  1. 解决目录和tgz文件等不显示相应颜色
  2. Flask入门之Jinjia模板的一些语法
  3. 深划痕需要大面积补漆吗_剐蹭了需要立马补漆吗?这些小技巧能省不少!
  4. php添加项目,thinkphp添加一个项目
  5. linux中的man文档结构
  6. mysql的cpu高定位
  7. Sqlite3 数据库基本操作
  8. mybatis3源码1-初始化
  9. “意念打字”终成真!准确率超 99%,还登上了《Nature》封面!
  10. Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
  11. atitit.ajax上传文件的实现原理 与设计
  12. C++学习笔记(达内视频版)
  13. Win10更新后BUG——任务栏点不动、卡死、加载不出来解决办法
  14. ADCS relay
  15. 如何用HBuilderX把uni-app项目运行到微信开发者工具上
  16. pandas并发处理数据神器Pandarallel的实战代码
  17. python高分书籍推荐_如果只能推荐一本 Python 书,我一定 Pick 它
  18. windows可以ping通linux虚拟机的ip,但是ping不通主机名称解决方案
  19. 单目标优化算法测试函数python绘制及相关代码
  20. 微型计算机属于数字模拟混合计算机,2017年计算机基础题模拟试题「附答案」...

热门文章

  1. 【ElasticSearch】Es 源码之 CacheService 源码解读
  2. 【mac】iTerm2中ssh保持连接不断开
  3. 【Clickhouse】Clickhouse 分析函数 window functions 窗口函数
  4. 【Kafka】Kafka 如何读取offset topic内容 (__consumer_offsets)
  5. Spark Structured : java.lang.RuntimeException: Offsets committed out of order: 2 followed by 0
  6. Flink:Container is running beyond virtual memory limits
  7. 【Mac】setremotelogin: Turning Remote Login on or off requires Full Disk Access privileges.
  8. mac 下 ~/.bash_profile无效
  9. Spring : Transaction源码解析
  10. 常用的排序算法总结(二)