mysql一对多增删改查_SQLAlchemy 增删改查 一对多 多对多
#高级版查询操作,厉害了哦#老规矩
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 增删改查 一对多 多对多相关推荐
- 怎么用PHP语句做出增改删查功能,mysql语句实现简单的增、删、改、查操作示例...
本文实例讲述了mysql语句实现简单的增.删.改.查操作.分享给大家供大家参考,具体如下: 1.创建db_shop数据库,如果该数据库不存在则创建 createdatabaseifnotexistsd ...
- jdbc连接MySQL后的增、删、改、查
jdbc连接MySQL MysqlUtil工具类 mysql的增.删.改.差 1.增 2.删 3.改 4.查 mysql的建表语句(直接复制到Navicat运行即可) MysqlUtil工具类 imp ...
- MySQL基础操作增,删,改,查。
一,SQL语言概述 1,SQL语言是关系型数据库的标准语言,用于维护管理数据库,如数据查询,数据更新,访问控制,对象管理等功能. 2,建表 这是需要掌握的. (1)#Show databases: 查 ...
- Nodejs连接mysql并实现增、删、改、查
文章目录 摘要 一.准备 二.建库并插入5条记录 三.先测试一下环境 1. 首先需要安装nodejs 的mysql包 2.编写nodejs与mysql交互的代码 3.运行结果 四.Node.js结合M ...
- python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)...
python操作mysql⑥新闻管理后台功能的完善(增.删.改.查) 安装表单验证 D:\python\python_mysql_redis_mongodb\version02>pip inst ...
- Linux环境下MySQL基础命令(3)----增、删、改、查语句
MySQL中的增.删.改.查命令是最基础的语句,通常应用在对表内数据的维护工作中.本文是对mysql数据库name库中的users表进行实例演示.name库以及users表均为本人建立,并非自带. 1 ...
- shell处理mysql增、删、改、查
shell处理mysql增.删.改.查 引言 这几天做一个任务,比对两个数据表中的数据,昨天用PHP写了一个版本,但考虑到有的机器没有php或者php没有编译mysql扩展,就无法使用mysql系列的 ...
- Nodejs连接mysql的增、删、改、查操作
一,创建数据库 Source Database : my_news_test SET FOREIGN_KEY_CHECKS=0;-- ---------------------------- -- T ...
- SpringBoot增和MongoDB实现增删改查、复合查询
SpringBoot增和MongoDB实现增删改查.复合查询 依赖 <dependency><groupId>org.springframework.boot</grou ...
最新文章
- 解决目录和tgz文件等不显示相应颜色
- Flask入门之Jinjia模板的一些语法
- 深划痕需要大面积补漆吗_剐蹭了需要立马补漆吗?这些小技巧能省不少!
- php添加项目,thinkphp添加一个项目
- linux中的man文档结构
- mysql的cpu高定位
- Sqlite3 数据库基本操作
- mybatis3源码1-初始化
- “意念打字”终成真!准确率超 99%,还登上了《Nature》封面!
- Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
- atitit.ajax上传文件的实现原理 与设计
- C++学习笔记(达内视频版)
- Win10更新后BUG——任务栏点不动、卡死、加载不出来解决办法
- ADCS relay
- 如何用HBuilderX把uni-app项目运行到微信开发者工具上
- pandas并发处理数据神器Pandarallel的实战代码
- python高分书籍推荐_如果只能推荐一本 Python 书,我一定 Pick 它
- windows可以ping通linux虚拟机的ip,但是ping不通主机名称解决方案
- 单目标优化算法测试函数python绘制及相关代码
- 微型计算机属于数字模拟混合计算机,2017年计算机基础题模拟试题「附答案」...
热门文章
- 【ElasticSearch】Es 源码之 CacheService 源码解读
- 【mac】iTerm2中ssh保持连接不断开
- 【Clickhouse】Clickhouse 分析函数 window functions 窗口函数
- 【Kafka】Kafka 如何读取offset topic内容 (__consumer_offsets)
- Spark Structured : java.lang.RuntimeException: Offsets committed out of order: 2 followed by 0
- Flink:Container is running beyond virtual memory limits
- 【Mac】setremotelogin: Turning Remote Login on or off requires Full Disk Access privileges.
- mac 下 ~/.bash_profile无效
- Spring : Transaction源码解析
- 常用的排序算法总结(二)