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

【Django】 开发:数据库操作和后台管理

filter() 查询符合条件的多条记录 exclude() 查询符合条件之外的全部记录 … 1. all () 方法 方法: all () 用法: MyModel.objects.all ()...,‘列’) 作用: 与 all () 方法不同,它会用 SQL 语句的 ORDER BY 子句对查询结果进行根据某个字段选择性的进行排序 说明: 默认是按照升序排序,降序排序则需要在列前增加’-' 表示...books.update(price=0) # 将所有书的零售价定为100元 books = Book.objects.all() books.update(market_price=100) 删除数据 删除记录是指删除数据库中的一条或多条记录...如: 一个身份证对应一个人 一对多映射 如: 一个班级可以有多个学生 多对多映射 如: 一个学生可以报多个课程,一个课程可以有多个学生学习 一对一映射 一对一是表示现实事物间存在的一对一的对应关系...一对多是表示现实事物间存在的一对多的对应关系。

4.1K40

Mysql基础

alter table tab_name drop [column] 列名; -- 思考:删除多列呢?...如果再想深一点,一条记录少了几个字节,关键是如果记录数多,那么总体节省的字节数就会很多,另外,加载到内存后,闸弄的内存更少,同时也只需要更少的IO,查询速度更快。    ..."床上用品"), ("草莓",34,20170612,"水果"); -- 注意,按分组条件分组后每一组只会显示第一条记录...insert/update --外键约束对父表的含义: 在父表上进行update/delete以更新或删除在子表中有一条或多条对 -- 应匹配行的候选键时...方式 在mysql中同Restrict,如果子表中有匹配的记录,则不允许对父表对应候选键 -- 进行update/delete操作(了解) 多表查询 准备表 -- 准备两张表 -- company.employee

4.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django---ORM操作大全

    1对多 如果A表的1条记录对应B表中N条记录成立,两表之间就是1对多关系;在1对多关系中 A表就是主表,B表为子表,ForeignKey字段就建在子表; 如果B表的1条记录也对应A表中N条记录,两表之间就是双向...此时Django为我们提供了F和Q查询: 1、F 可以获取对象中的字段的属性(列),并对其进行操作; from django.db.models import F,Q #F 可以获取对象中的字段的属性...(列),并且对其进行操作; models.Book.objects.all().update(price=F('price')+1) #对图书馆里的每一本书的价格 上调1块钱 2、Q多条件组合查询...import F,Q 1、F 可以获取对象中的字段的属性(列),并且对其进行操作; # models.Book.objects.all().update(price=F('price'...(title__icontains='伟',author__name__contains='伟').values('title') #如何让orm 中得 fifter 支持逻辑判断+多条件查询?

    7K100

    一篇文章带你了解Django ORM操作(高端篇)

    分组操作 分组操作,就是将某一列,相同的值进行压缩,然后就可以得出压缩值的数量。 如果压缩的是外键,还可以取出外键的详细信息。 示例:查询出每个出版社出版的数量。...注:分组(annotate)后面跟的values。 里面只能写外键字段的列和annotate里面的列,不能写其他。 如果分组分的不是外键字段,那就不能再跟values!...分组再筛选 分组再筛选本质就是原生sql的group by .. having,将压缩完的数据在进行条件判断。 但是对压缩的数据进行判断只能通过having。...F查询 有时候,我们可能有这样的需求,就是两个列之间进行比较。 比如经典问题,一个商品,找到收藏数大于销量的商品等之类的两列进行比较的需求。 示例:查询book表,评论数小于收藏数的数据。...本篇主要补充的是一些高端操作,例如聚合操作,分组操作,分组再筛选操作,F查询和Q查询。 如何动态构造Q查询。 相对来说,Django还是自由度比价高的,而且写起来确实比较省心。

    1.3K11

    Flask 操作Mysql数据库 - flask-sqlalchemy扩展

    join 明确指定两个模型之间使用的联结条件 uselist 如果为False,不使用列表,而使用标量值 order_by 指定关系中记录的排序方式 secondary 指定多对多中记录的排序方式 secondary...join 在SQLAlchemy中无法自行决定时,指定多对多关系中的二级联结条件 上面这些有很多基本选项的说明,下面来进行数据库的基本增删改等操作来加强理解。...在视图函数中定义模型类 看完了上面那么多的概念说明,下面来看看如何创建数据模型以及创建数据表,如下: 1.在脚本15_SQLAlchemy.py编写创建User和Role数据模型 from flask...,返回一个新查询 group_by() 根据指定条件对原查询结果进行分组,返回一个新查询 常用的SQLAlchemy查询执行器 方法 说明 all() 以列表形式返回查询的所有结果 first() 返回查询的第一个结果...22]: In [23]: user = User.query.get(2) In [24]: user.name Out[24]: 'li' 关联查询示例:角色和用户的关系是一对多的关系

    21.3K22

    Mysql原理篇之索引是如何一步步实现的---上--02

    Mysql原理篇之索引是如何一步步实现的---上--02 前言 从一条记录说起 如何管理多条记录---页 记录的存储格式 COMPACT行格式 行溢出 页是如何管理多条记录的 如何快速定位页中某一条记录...而一张表又是由成千上万的记录组织起来,因此,我们需要先解决一条记录该如何存储,该以什么格式进行存储,多条记录该如何编排管理… 因此,第一步我们就从一条记录开始说起。...设计InnoDB的大叔们对每个分组中的记录条数是有规定的:对于最小记录所在的分组只能有 1 条记录,最大记录所在的分组拥有的记录条数只能在 1~8 条之间,剩下的分组中记录的条数范围只能在是 4~8 条之间...所以分组是按照下边的步骤进行的: 初始情况下一个数据页里只有最小记录和最大记录两条记录,它们分属于两个分组。...以其他列作为搜索条件 对非主键列的查找的过程可就不这么幸运了,因为在数据页中并没有对非主键列建立所谓的页目录,所以我们无法通过二分法快速定位相应的槽。

    65020

    23. Flask 操作Mysql数据库 - flask-sqlalchemy扩展

    join 明确指定两个模型之间使用的联结条件 uselist 如果为False,不使用列表,而使用标量值 order_by 指定关系中记录的排序方式 secondary 指定多对多中记录的排序方式 secondary...join 在SQLAlchemy中无法自行决定时,指定多对多关系中的二级联结条件 上面这些有很多基本选项的说明,下面来进行数据库的基本增删改等操作来加强理解。...在视图函数中定义模型类 看完了上面那么多的概念说明,下面来看看如何创建数据模型以及创建数据表,如下: 1.在脚本15_SQLAlchemy.py编写创建User和Role数据模型 from flask...,返回一个新查询 group_by() 根据指定条件对原查询结果进行分组,返回一个新查询 常用的SQLAlchemy查询执行器 方法 说明 all() 以列表形式返回查询的所有结果 first() 返回查询的第一个结果...22]: In [23]: user = User.query.get(2) In [24]: user.name Out[24]: 'li' 关联查询示例:角色和用户的关系是一对多的关系

    5.4K20

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

    这份指南描述了通过Django查询来生成和返回聚合值的方法。 整篇指南我们都将引用以下模型。这些模型用来记录多个网上书店的库存。...比如,如果你在检索一列图书,你可能想知道有多少作者写了每一本书。每本书和作者是多对多的关系。我们想要汇总QuerySet.中每本书里的这种关系。 逐个对象的汇总结果可以由annotate()子句生成。...还可以用到多对多关系上。...例如,我们可以查询每个作者,注上它写的所有书(以及合著的书)一共有多少页(注意我们如何使用 ‘book’来指定Author -> Book的多对多的反转关系): >>> Author.objects.annotate...不是在原始的 QuerySet返回结果中对每个对象中添加注解,而是根据定义在values() 子句中的字段组合对先结果进行唯一的分组,再根据每个分组算出注解值, 这个注解值是根据分组中所有的成员计算而得的

    1.7K30

    Django模型model

    会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 属性命名限制 不能是python的保留关键字 由于django的查询方式,不允许使用连续的下划线...模型类中字段选项 通过字段选项,可以实现对字段的约束 在字段对象时通过关键字参数指定 null:如果为True,Django 将空值以NULL 存储到数据库中,默认值是 False blank:如果为True...模型类之间关系 关系的类型包括 ForeignKey:一对多,将字段定义在多的端中 ManyToManyField:多对多,将字段定义在两端中 OneToOneField:一对一,将字段定义在任意一端中...(3)Q对象 过滤器的方法中关键字参数查询,会合并为And进行 需要进行or查询,使用Q()对象 Q对象(django.db.models.Q)用于封装一组关键字参数,这些关键字参数与“比较运算符”中的相同...Q(pk lt=6) | Q(bcommet _gt=10)) 使用~(not)操作符在Q对象前表示取反 list.filter(~Q(pk__lt=6)) 可以使用&|~结合括号进行分组

    15310

    23篇大数据系列(三)sql基础知识(史上最全,建议收藏)

    1对多,是指表A和表B通过某字段关联后,表A中的一条记录可能对应表B中的多条记录,而表B中的一条记录最多对应表A中的一条记录。...多对多,是指表A和表B通过某字段关联后,表A中的一条记录可能对应表B中的多条记录,而表B中的一条记录可能对应表A中的多条记录。 1对1 和 1对多关系,通常使用外键引用对应表的主键就可以表达。...后面跟分组后的过滤条件 ORDER BY 后面跟用于排序的列或计算公式 LIMIT 从结果中选取前N行,后面跟具体行数 DISTINCT 对后面跟的列进行去重 COUNT 对指定的一列或多列计数,会忽略掉...2.6  分组聚合 分组聚合是指,我们可以将表中的数据,根据某一列或多列进行分组,然后将其他列的值进行聚合计算,如计数、求和和求平均值等。...2.7  去重  DISTINCT关键字用于对一列或多列去重,返回剔除了重复行的结果。DISTINCT对多列去重时,必须满足每一列都相同时,才认为是重复的行进行剔除。

    2.7K60

    遇到多条件分类问题,怎么办?

    1)“订单数在0-2、3-5、5单以上”,因此查询结果中第一列记录的是订单数区间。 2)“各有多少人?”,查询结果中第二列记录的是各订单数区间对应的人数。...所以,查询结果的表结构应该是如下图所示这样: 2.如何查询可以得到这样的结果?...因此,可以在上图查询结果的基础上对订单数区间进行分组,然后对每个组进行计数。 那什么关键字又能实现这一功能呢?...这是典型的“分组汇总”问题,按订单区间分组(group by),汇总函数(count用于计算每组有多少行数据) image.png 【本题考点】 遇到“多条件判断分类”问题,要想到用case语句进行多条件判断...,然后使用分组汇总来解决。

    40700

    06.Django基础五之django模型层(二)多表操作

    咱们的表里面包含了一对一、一对多、多对多的关系,我们基于这几个表来练习,将来无论有多少张表,都逃脱不了这三个关系,操作起来都是一样的。...三 基于对象的跨表查询 跨表查询是分组查询的基础,F和Q查询是最简单的,所以认真学习跨表查询 一对多查询(Publish 与 Book) ?     ...四 基于双下划线的跨表查询(基于join实现的) Django 还提供了一种直观而高效的方式在查询(lookups)中表示关联关系,它能自动确认 SQL JOIN 联系。...''' 基于双下划线的查询就一句话:正向查询按字段,反向查询按表名小写用来告诉ORM引擎join哪张表,一对一、一对多、多对多都是一个写法,注意,我们写orm查询的时候,哪个表在前哪个表在后都没问题...总结 :跨表分组查询本质就是将关联表join成一张表,再按单表的思路进行分组查询,,既然是join连表,就可以使用咱们的双下划线进行连表了。

    2.7K20

    Mysql常用查询语句

    … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值 (2)IS NOT NULL 对非空值进行查询 (3)IS NULL 对空值进行查询 (4)NOT IN...,则默认为ASC升序 十九对数据进行多条件查询 SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC  … 注意:对查询信息进行多条件排序是为了共同限制记录的输出...二十对统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和... by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误 二十二多列数据分组统计 多列数据分组统计与单列数据分组统计类似 SELECT *,SUM(字段...num) AS sumprice  FROM tb_price GROUP BY pid ORDER BY sumprice DESC 注:group by语句后面一般为不是聚合函数的数列,即不是要分组的列

    5.1K20

    Django ORM 数据库常用操作

    :: 比如说一个出版社可以出版多本书,但是一本书只能够在一个出版社进行发表,这就是一个典型的一对多的关系,一对多models.ForeignKey(),如下我们首先创建一个Book表,然后创建一个Publish...表,一个Publish记录中可以包含多本书. from django.db import models import sqlite3 class Book(models.Model): id...:: 一个作者可以写多本书,同样的一本书可能是由多个作者一起写出来的,这就是多对多的关系,多对多models.ManyToManyField() from django.db import models...) # 多对多,django会自动创建一个新的表book_author用来记录多对多键值对 author = models.ManyToManyField("Author") class...--------------------------------- # F查询:专门针对对象中某列中的某个值进行操作 # 需求:通过F查询我们将book表中所有图书的价格全部涨价20元

    77910

    常用SQL查询语句,值得回看不要错过,好记性不如多看看!

    … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值 (2)IS NOT NULL 对非空值进行查询 (3)IS NULL 对空值进行查询 (4)NOT IN 该式根据使用的关键字是包含在列表内还是排除在列表外...降序 SELECT 字段名 FROM tb_stu WHERE 条件 ORDER BY 字段 ASC 升序 注:对字段进行排序时若不指定排序方式,则默认为ASC升序 十九、对数据进行多条件查询 SELECT...字段名 FROM tb_stu WHERE 条件 ORDER BY 字段1 ASC 字段2 DESC … 注意:对查询信息进行多条件排序是为了共同限制记录的输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别...二十、对统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现对字段的求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录的字段求和...by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句的前面,否则会出现错误 二十二、多列数据分组统计 多列数据分组统计与单列数据分组统计类似 SELECT *,SUM(字段1

    3K30

    Django—模型

    根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django会为表创建自动增长的主键列,每个模型只能有一个主键列...,如果使用选项设置某属性为主键列后django不会再创建自动增长的主键列。...限制查询集 可以对查询集进行取下标或切片操作,等同于sql中的limit和offset子句。   注意:不支持负数索引。 对查询集进行切片后返回一个新的查询集,不会立即执行查询。...ManyToManyField:多对多,将字段定义在任意一端中。 OneToOneField:一对一,将字段定义在任意一端中。...,所以属性定义在英雄模型类中  多对多关系 我们下面设计一个新闻类和新闻类型类,一个新闻类型下可以用很多条新闻,一条新闻也可能归属于多种新闻类型。

    6.1K21
    领券