首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL | 如何查询结果进行排序

数据操作语言:结果排序 如果没有设置,查询语句不会对结果进行排序。也就是说,如果想让结果按照某种顺序排列,就必须使用 ORDER BY 子句。 SELECT .........ASC 代表升序(默认),DESC 代表降序 如果排序列是数字类型,数据库就按照数字大小排序如果是日期类型就按日期大小排序如果是字符串就按照字符序号排序。...FROM t_emp ORDER BY ename ASC; SELECT empno,ename,hiredate,deptno FROM t_emp ORDER BY hiredate DESC; 排序字段内容相同的情况...默认情况下,如果两条数据排序字段内容相同,那么排序会是什么样子?...数据库会先按照首要排序条件排序如果遇到首要排序内容相同的记录,那么就会启用次要排序条件接着排序

6.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Django框架学习(四)

import BookInfo,HeroInfo if __name__ == '__main__': # 条件查询 我们如果是想在文件中直接运行,进行数据库的查询操作,可以上面的步骤进行设置...import Count, Sum,Avg,Max,Min aggregate 1.6排序 默认是升序,如果想要降序,在查询字段前写减号。...order_by 1.7关联查询 1、查询和指定对象关联的数据(重点掌握) 由一查多:一对象.多类名小写__set.all() 由多查一:多对象.外键属性 2、通过模型类进行关联查询 查图书:一类.objects.get...|filter(多类名__字段__条件=值) 查英雄:多类.objects.filter(外键属性__字段__条件=值) 2.查询 注意:对于queryset类的对象,可以继续调用之前的任何一个查询函数...两大特性: 1、惰性查询:只有在使用查询集中的数据时才会进行数据库真正查询操作 2、查询结果的缓存:如果使用同一个查询时,只有在第一次使用查询时会进行数据库的查询操作,然后Django框架就会把查询的结果存起来

1.5K41

Django之QuerySet详解

exclude() 排除满足条件的对象 annotate() 使用聚合函数 order_by() 查询进行排序 reverse() 反向排序 distinct() 查询去重...换句话说,用order_by()方法QuerySet对象进行操作会返回一个扩大版的新QuerySet对象。因此,使用多值字段结果进行排序时要格外小心。 没有方法指定排序是否考虑大小写。...当最初获取数据时不知道是否需要这些特定字段的情况下,如果正在使用查询的结果,可以告诉Django不要从数据库中检索它们。...),如果对象存在则创建一个新对象。...11. first() 返回结果的第一个对象, 当没有找到时返回None。如果QuerySet没有设置排序,则将会自动主键进行排序

2.3K20

django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)

连接和聚合 至此,我们已经了解了作用于单种模型实例的聚合操作, 但是有时,你也想查询对象的关联对象进行聚合。...例如,根据一本图书作者数量的多少查询 QuerySet进行排序: >>> Book.objects.annotate(num_authors=Count('authors')).order_by('...不是在原始的 QuerySet返回结果中每个对象中添加注解,而是根据定义在values() 子句中的字段组合先结果进行唯一的分组,再根据每个分组算出注解值, 这个注解值是根据分组中所有的成员计算而得的...但是,如果 annotate() 子句在 values()子句之前,就会根据整个查询生成注解。在这种情况下,values() 子句只能限制输出的字段范围。...这个行为与查询文档中提到的 distinct() 一样,而且生成规则也一样:一般情况下,你不想在结果中由额外的字段扮演这个角色,那就清空排序项,或是至少保证它仅能访问 values()中的字段

1.6K30

Django使用】第6篇:Django数据库和Admin使用详解。笔记md文档(已分享,附代码)

~共 10 章,31 子模块数据库学习目标能够进行Django数据库配置掌握Django中模型类的定义掌握Django中的迁移命令的使用能够使用Django的ORM进行数据库的增删改查能够说明查询QuerySet...查询满足条件的对象模型类.objects.exclude()QuerySet查询不满条件的对象模型类.objects.order_by()QuerySet查询结果进行排序模型类.objects.aggregate...例:把id大于3的员工信息年龄从大到小排序显示五、aggregate 方法作用: 聚合操作,多行查询结果中的一列进行操作,返回一个值用法: 模型类.objects.aggregate(聚合类('属性名...()QuerySet查询不满条件的对象模型类.objects.order_by()QuerySet查询结果进行排序2)QuerySet 提供的方法QuerySet方法返回类型作用get()模型对象查询一个对象...filter()QuerySet查询满足条件的对象exclude()QuerySet查询不满条件的对象order_by()QuerySet查询结果进行排序aggregate()字典,例如:{'salary

20310

Django之ORM对数据库操作

order_by(*field): 查询结果排序 reverse(): 查询结果反向排序,请注意reverse()通常只能在具有已定义顺序的...此时可以使用distinct(),注意只有在PostgreSQL中支持字段去重。)...它存在于下面两种情况: 外键关系的反向查询多关联关系 简单来说就是当 点后面的对象 可能存在多个的时候就可以使用以下的方法。...方法 create() 创建一个新的对象,保存对象,并将它添加到关联对象之中,返回新创建的对象。...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。

1.3K110

django 1.8 官方文档翻译: 2-6-4 数据库访问优化

注意,设计最好的索引方案是一个复杂的、数据库相关的话题,它取决于你应用的细节。持有索引的副作用可能会超过查询速度上的任何收益。 合理使用字段类型。 我们假设你已经完成了上面这些显而易见的事情。...数据在内存中如何存储。 理解缓存属性 和整个QuerySet的缓存相同,ORM对象的属性的结果中也存在缓存。通常来说,不可调用的属性会被缓存。...在数据库中而不是Python中做数据库的工作 比如: 在最基础的层面上,使用过滤器和反向过滤器对数据库进行过滤。 使用F 表达式在相同模型中基于其他字段进行过滤。 使用数据库中的注解和聚合。...例如,执行: entry.blog_id 而不是: entry.blog.id 不要做无谓的排序 排序并不是没有代价的;每个需要排序字段都是数据库必须执行的操作。...如果一个模型具有默认的顺序(Meta.ordering),并且你并不需要它,通过在查询上无参调用order_by() 来移除它。 向你的数据库添加索引可能有助于提升排序性能。

1.1K30

【Python全栈100天学习笔记】Day41 Django深入理解框架

如果这些东西感到很困惑也不要紧,文末提供了字段类、字段属性、元数据选项等设置的相关说明,不清楚的读者可以稍后查看对应的参考指南。 再次执行迁移操作,先通过模型生成迁移文件,再执行迁移创建二维表。...我们可以通过manage.py开启Shell交互式环境,然后使用Django内置的ORM框架模型进行CRUD操作。...Dept.objects.order_by('no')[2:4] # 部门编号排序查询3~4部门 , ]> 高级查询。...related_name:用于获取关联对象的关联管理器对象(反向查询),如果不允许反向,该属性应该被设置为'+',或者以'+'结尾。 to_field:指定关联的字段,默认关联对象的主键字段。...index_together 设定一起建立索引的多个字段名 verbose_name 为对象设定人类可读的名称 verbose_name_plural 设定对象的复数名称 查询参考 字段查找可以用的条件

2.2K30

Django相关知识点回顾

QuerySet(查询) exclude 查询条件 返回不满足条件的所有数据 QuerySet(查询) order_by 排序字段 查询结果进行排序 QuerySet(查询) aggregate...= 值 可以写多个查询条件,默认是且的关系 F对象: 用于查询字段之间的比较 from django.db.models import F Q对象: 用于查询时条件之间的逻辑关系 from django.db.models...()过滤器调用聚合函数 排序排序默认是升序,降序在排序字段前加- 使用order_by 关联查询: 1.查询和指定对象关联的数据 # 由1查多 一对象.多类名小写_set.all() 例:book.heroinfo_set.all...这4个函数返回的是查询对象 特点 可以像list一样进行操作,可以遍历、取下标、进行切片,切片时下标不允许为负数。...查询结果的缓存 使用同一个查询时,只有在第一次使用查询时会进行数据库的查询操作,然后Django框架就会把查询的结果存起来,下一次再使用这个查询时,使用的Django之前存储的结果。

10K51

python 终级篇 django --

此时可以使用distinct(),注意只有在PostgreSQL中支持字段去重。) count(): 返回数据库中匹配查询(QuerySet)的对象数量。...也就是什么情况下使用管理对象---->>>> 它存在于下面两种情况: 外键关系的反向查询多关联关系 简单来说就是当 点后面的对象 可能存在多个的时候就可以使用以下的方法。...方法: create() 创建一个新的对象,保存对象,并将它添加到关联对象之中,返回新创建的对象。...如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较。F() 的实例可以在查询中引用字段,来比较同一个 model 实例中两个不同字段的值。...对于多字段(ManyToManyField)和一字段,可以使用prefetch_related()来进行优化。

2.8K20

Django官方文档小结(二) -- QuerySet

Django QuerySet 本文主要内容是关于Django框架中QuerySet知识小结 #1 环境 Python3.7.3 Django==2.0.7 #2 Field查找 字段查找是指定SQL...日期字段的月份 xxx__day 日期字段的日 ---- exact 完全符合,如果提供用于比较的值None,则将其解释为SQL NULL。...annotate() annotate(* args,** kwargs) 表达式可以是简单值,模型(或任何相关模型)上的字段的引用,或者是通过与对象中的对象相关对象计算的聚合表达式(平均值,总和等...order_by() order_by(*fields) 默认情况下,a返回的结果模型中选项QuerySet给出的排序元组排序。您可以使用该方法在每个基础上覆盖它。...reverse() reverse() 使用此reverse()方法可以反转返回查询元素的顺序。reverse()第二次调用将排序恢复到正常方向。

1.7K20

三、模型(一)

注意,我们这里只是Unicode对象进行非常浅显的概述,若要深入了解你可能需要查阅相关的资料。...我们还没有告诉数据库 怎样结果进行排序,所以我们返回的结果是无序的。 在你的 Django 应用中,你或许希望根据某字段的值检索结果排序,比如说,字母顺序。...大多数时间你通常只会对某些 字段进行排序。...如果你设置了这个选项,那么除非你检索时特意额外地使用了 order_by(),否则,当你使用 Django 的数据库 API 去检索时,Publisher对象相关返回值默认地都会 name 字段排序...连锁查询 我们已经知道如何对数据进行过滤和排序。 当然,通常我们需要同时进行过滤和排序查询的操作。

4.5K90

Django篇(二)

注意:我们在添加属性的时候如果影响了表结构,就需要迁移,default和blank不影响表结构。 更多模型字段,请参考Django官方文档。写的明明白白。...order_by: 查询的结果进行排序,返回类型也是QuerySet。 以下我们以模型类为stuinfo是实例。...('id') 查询所有人按照ids从大到小排序 student.objects.all().order_by('-id') 也可以根据多个字段排序 根据id和age进行排序 student.objects.all...Q对象 以上我们都是单个条件进行查询,那如果多个条件呢? 我们可以在上面获取的对象再次进行筛选,也就是注意中说的那句话,但是很麻烦。 因此Django为我们提供了Q模块来帮助我们多条件查询。...查询相当于一个列表,我们取值可以遍历取出,也可以进行下表或者切片取出。 当我们一个查询进行切片或下标查询,会返回一个新的查询。 不同的是我们的切片不允许为负值。 判断一个查询是否有数据。

1.3K20

django模型

它包含你所储存数据的必要字段和行为。每个模型 应数据库中唯一的一张表 如何编写模型 模型:每个模型都用一个类表示,该类继承自django.db.models.Model。...如果你知道只有一个对象满足你的查询,你可以使用管理器的get() 方法,它直接返回该 象: one_entry = Entry.objects.get(pk=1) 可以对get() 使用任何查询表达式...这个异常是正在查询的模型类的一个属性 —— 所以在上面的代码中, 如果没有主键为1 的Entry 对象Django 将引发一个Entry.DoesNotExist。...它等同于SQL 的LIMIT 和OFFSET 子 句 >>> Entry.objects.all()[:5] >>> Entry.objects.all()[5:10] 字段查询 字段查询是指如何指定...如果您在某些情 况下使用查询的结果,当您最初获取数据时不知道是否需要这些特定字段,可以告诉 Django不要从数据库中检索它们。

3.1K20
领券