<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 查詢 本節內容 1. 條件查詢 2. F對象 3. Q對象 4. 聚合 5. 排序 6. 關聯查詢 [準備測試數據](TestDatas.html) ### 一、條件查詢 1. 調用`filter方法`:**模型類.objects.filter(模型類屬性名\_\_條件名=值)** 2. 返回包含查詢結果數據的`QuerySet`對象 **練習案例:** 1. 判等: exact ~~~ 例:查詢id為1的員工 ~~~ 2. 模糊查詢: contains / endswith / startswith ~~~ 例:查詢名字包含'馬'的員工 例:查詢名字以'軍'結尾的員工 ~~~ 3. 空查詢: isnull ~~~ 例:查詢備注信息不為空的員工 ~~~ 4. 范圍查詢: in ~~~ 例:查詢id編號為1或3或5的員工 ~~~ 5. 比較查詢: gt(greater than)、lt(less than)、gte、lte ~~~ 例:查詢age大于30的員工 ~~~ 6. 日期查詢: year、month、day、week\_day、hour、minute、second ~~~ 例:查詢2015年入職的員工 例:查詢2014年1月1日后入職的員工 ~~~ [案例參考答案](ORM查詢.html) ### 二、F對象 之前的查詢都是對象屬性與常量值比較,如果要比較兩個屬性怎么做呢? 比如:`查詢語文分數大于數學分數的學生` | 姓名 | 數學 | 語文 | 英語 | | --- | --- | --- | --- | | Tom | 95 | 90 | 95 | | Jack | 95 | 90 | 95 | | Rose | 90 | 92 | 98 | 1. F對象:**比較表中的兩個字段**,接收的參數為一個字符串 2. 用法:`F('屬性名')` * 比如:`成績表.objects.filter(語文__gt=F('數學'))` * 需要導包:`from django.db.models import F` 3. 案例 ~~~ 例:查詢年齡大于id的員工信息(無實際意義) 例:查詢年齡大于4倍id編號的員工信息(無實際意義) ~~~ [案例參考答案](ORM查詢.html) ### 三、Q對象 * 作用:**對查詢條件進行`與 或 非`(& | ~) 的邏輯操作** * 用法: 先導入`from django.db.models import Q` * 與: Q(查詢條件1) & Q(查詢條件2) * 或: Q(查詢條件1) | Q(查詢條件2) * 非: ~Q(查詢條件) * 案例 ~~~ 例:查詢id大于3且年齡大于30的員工信息。 例:查詢id大于3或者年齡大于30的員工信息。 例:查詢id不等于3員工信息。 ~~~ [案例參考答案](ORM查詢.html) ### 四、排序 * 作用: 對查詢結果進行排序,**默認為升序** * 用法: 升序:**模型類.objects.order\_by('屬性名')** 降序:**模型類.objects.order\_by('-屬性名')** * 示例: ~~~ 例:查詢所有員工信息,按照id從大到小進行排序。 例:把id大于3的員工信息按年齡從大到小排序顯示 ~~~ ### 五、`aggregate`方法 * 作用: 聚合操作,對多行查詢結果中的一列進行操作,返回一個值 * 用法:**模型類.objects.aggregate(聚合類('屬性名'))** * 常用聚合類有:Sum, Count, Max, Min, Avg等 * 返回值是一個字典, 格式:`{'屬性名__聚合函數': 值}` * 使用時需要先導入聚合類:`from django.db.models import Sum, Count, Max, Min, Avg` * 案例: ~~~ 例:查詢所有員工的平均工資。 ~~~ [案例參考答案](ORM查詢.html) ### 六、關聯查詢 假設在`一對多`關系中,一對應的類叫做`一類`,多對應的類叫做`多類` 一、通過`對象`進行關聯查詢 1. 由`一類對象`查詢`多類對象`:**`一類對象.多類名小寫_set.all()`** 2. 由`多類對象`查詢`一類對象`:**`多類對象.關聯屬性`** 3. 示例 ~~~ # 查詢 “研發部” 的所有員工 d = Department.objects.get(name=‘研發部’) d.employee_set.all() # 一查多 # 例:查詢 “趙小二” 所屬的部門信息 e = Employee.objects.get(name='趙小二') e.department # 多查一 ~~~ 二、通過`模型類`實現上述兩個案例 * `一類名.objects.filter(多類名小寫__多類屬性名__條件名=值)` * `多類名.objects.filter(關聯屬性__一類屬性名__條件名=值)` 實現參考: ~~~ Employee.objects.filter(department__name__exact='研發部') Department.objects.filter(employee__name__exact='趙小二') # 簡寫 Employee.objects.filter(department__name='研發部') Department.objects.filter(employee__name='趙小二') ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看