sqlalchemy query函数可用参数有哪些?
一、模型名
二、模型对象属性
三、聚合函数
下面就分别为大家讲讲query函数这三种参数的用法。
在讲之前,我已经把数据库连接配置、模型,以及添加数据写好了,代码如下:
1 from sqlalchemy import create_engine,Column,String,Integer 2 from sqlalchemy.ext.declarative import declarative_base 3 from sqlalchemy.orm.session import sessionmaker 4 import random 5 6 DIALCT = "mysql" 7 DRIVER = "pymysql" 8 USERNAME = "root" 9 PASSWORD = "admin" 10 HOST = "127.0.0.1" 11 PORT = "3306" 12 DATABASE = "test" 13 DB_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALCT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE) 14 engine = create_engine(DB_URI) 15 Base = declarative_base(engine) 16 session = sessionmaker(engine)() 17 18 class Student(Base): 19 __tablename__ = "student" 20 id = Column(Integer , primary_key=True , autoincrement=True) 21 name = Column(String(50)) 22 score = Column(Integer) 23 24 def __repr__(self): 25 return "<Student name:%s,score:%s>"%(self.name,self.score) 26 27 Base.metadata.drop_all() 28 Base.metadata.create_all() 29 30 for i in range(6): 31 # random.randint(0,100) 随机生成一个0-100之间的成绩 32 student = Student(name = "name%s"%i,score=random.randint(0,100)) 33 session.add(student) 34 session.commit()
第一种:模型名
语法:query(模型名)
假如我们现在要查找表中所有学生数据,方法如下:
1 results = session.query(Student).all() 2 for result in results: 3 print(result)
运行上述代码,然后就可以看到查找结果了。
第二种:模型对象属性
语法:query(模型名.模型属性)
比如我们现在只想查看表中所有学生的姓名(看到成绩头有点大),代码如下:
1 results = session.query(Student.name).all() 2 for result in results: 3 print(result)
运行上述代码,我们就可以看到所有学生姓名了,结果如下:
第三种:聚合函数
上述表中我已列出所有所有的聚合函数,下马我就一一为大家讲讲。注意:在使用聚合函数前,记得从sqlalchemy导入
1 from sqlalchemy import create_engine,Column,String,Integer,func
1、func.sum
语法:query(func.sum(模型对象属性))
比如想要知道所有学生成绩之和,那么我们就可以使用func.sum这个聚合函数来实现
1 results = session.query(func.sum(Student.score)).all() 2 print(results)
运行代码,结果学生成绩之和就计算好了。
2、func.max
语法:query(func.max(模型对象属性))
如果要查找考试成绩最高的哪个学生,就可以使用func.max这个函数
1 results = session.query(func.max(Student.score)).all() 2 print(results)
嗯,查询出来的学生成绩最高分是98分
3、func.min
语法:query(func.min(模型对象属性))
我们知道最高分,然后想知道班上学生成绩波动大小。哪怎么办呢??想知道成绩波动大小,我们是不是还得知道班上成绩最低分,是吧?然后用最大值减去最小值除以二就可以求出学生成绩波动大小了。哪如何找出最小值呢?方法就是使用func.min这个聚合函数。
1 results = session.query(func.min(Student.score)).all() 2 print(results)
运行上述代码,我们就可以查找到分数最低的哪个。
4、func.count
语法:query(func.count(模型对象属性))
1 results = session.query(func.count(Student.score)).all() 2 print(results)
不出什么意外的话,我们就能得到下面结果(没错吧,总共是6行):
5、func.avg
语法:query(func.avg(模型对象属性))
期末考试考完,学校通常是不是要跟年级进行对比?对比啥?当然是班级考试成绩排名、好坏啦!那么如何对比呢?是不是通过考试成绩平均分,是吧?我说的没错吧?OK,func.avg这个聚合函数就是为解决求平均值而生的。
1 results = session.query(func.avg(Student.score)).all() 2 print(results)
运行上述代码,结果如下:
平均分是58.3333,考的有点不太理想啊。
上面就是关于query函数可用参数讲解。文章若有不当之处,欢迎大家指出!
转载于:https://www.cnblogs.com/lmh001/p/9959412.html
sqlalchemy query函数可用参数有哪些?相关推荐
- document.execCommand()函数可用参数解析 (转)
<HTML> <HEAD> <TITLE>JavaScript--execCommand指令集</TITLE> <SCRIPTLANGUAGE=& ...
- Pandas获取SQL数据库read_sql()函数及参数一文详解+实例代码
前言 Pandas常用作数据分析工具库以及利用其自带的DataFrame数据类型做一些灵活的数据转换.计算.运算等复杂操作,但都是建立在我们获取数据源的数据之后.因此作为读取数据源信息的接口函数必然拥 ...
- Python数据分析常用函数及参数详解,可以留着以备不时之需
利用Python进行数据分析最核心的库就是Pandas,可以说,掌握了Pandas库,Python数据分析就属于中阶水平了. 在<一次简单.完整的全流程数据分析,让我们不再害怕Python &g ...
- Python把函数作为参数传入的高阶编程方法
map:接受两个参数(函数,Iterable),map将传入的函数依次作用于Iterable的每个元素,并且返回新的Iterable def f(x):return x*x r = map(f,[1, ...
- Python函数和参数
Dear learners, in this tutorial we are going to learn Python Function and Arguments. Previously we l ...
- 如何在Google表格中使用QUERY函数
If you need to manipulate data in Google Sheets, the QUERY function can help! It brings powerful, da ...
- python怎么让输出结果为01_python函数基础-参数-返回值-注释-01
什么是函数 函数就是有特定功能的工具 #python中有内置函数(python解释器预先封装好的)与自定义函数(用户自定义封装的)之分 为什么要用函数 #可以减少代码冗余,增加代码复用性#使代码逻辑更 ...
- ES6 | let 关键字 + const关键字 + 箭头函数 + rest参数 + 扩展运算符 ... + Symbol + 迭代器 + 生成器 + 变量的解构赋值 + 模板字符串
目录 ECMASript 相关介绍 ECMASript 6 新特性 let 关键字 const关键字 变量的解构赋值 模板字符串 简化对象写法 箭头函数 => 参数默认值 rest参数 扩展运算 ...
- 高级JavaScript #ES6(模板字符串,let,箭头函数,forof,参数增强,解构,class,promise)
模板字符串 1.模板字符串: 只要拼接字符串 都用模板字符串代替+a.整个字符串包裹在一对儿反引号 ` ` 中b.反引号``中支持换行 c.反引号中需要动态生成的内容必须放在${}里d. ${}里: ...
- SQLAlchemy之Column常用参数
SQLAlchemy之Column常用参数 一.常用参数 primary_key:True 设置某个字段为主键. autoincrement:True 设置这个字段为自增长. default: 设置字 ...
最新文章
- c++ 返回对象的引用要小心
- Ajax操作的四个步骤
- python学习笔记(05)
- innerhtml js执行_JS 中 DOM 操作
- 【Java面试题视频讲解】十六进制转十进制
- java集群_Kafka多节点分布式集群搭建实现过程详解_java
- 【数据结构与算法】之深入解析“打家劫舍”的求解思路与算法示例
- JAVA当中Calendar类打印日历表单
- 火狐最实用的几款插件介绍[含附件]
- 第一次在Django上编写静态网页
- stm32 FATFS文件系统如何减少Flash和RAM占用,FATFS移除中文文件名,FATFS移除动态内存
- 采用 Python 机器学习预测足球比赛结果
- MAXWELL软件的初步使用
- 入选互联网名人堂的三位中国人
- wuauclt.exe是什么进程?为什么运行?wuauclt.exe进程介绍
- Ubiquitous Religions(POJ并查集板子题)
- 使用OpenCV,Python和dlib进行眨眼检测
- mysql ndb安装_MySQL NDB源码安装
- FIIL、南卡、漫步者蓝牙耳机怎么选?国产半入耳蓝牙耳机推荐
- AndroidStudio模拟器全面屏皮肤
热门文章
- server2012文件服务器的开始按钮,Windows Server 2012实用技巧集锦
- 福州大学数学与计算机科学学院 地址,福州大学数学与计算机科学学院导师介绍:陈神灿...
- 计算机CG技术未来发展前景,CG就业前景怎么样?
- 域名微信拦截html代码,微信域名拦截查询网页源码——一个非常实用的微信域名检测工具实现...
- TortoiseSVN使用教程
- 牛逼神器第三弹--nth_element函数
- 利用tensorFlow api 识别手术器械
- 汇川技术js600变频器_汇川变频器MD200系列产品型号及功能介绍
- 算法:求数组区间的和Range Sum Query - Immutable
- java 6 基础_java基础(6)