* 使用原生sql語句查詢資料
#使用raw方法
#解釋:執行原始sql並返回模型
#說明:依賴model多用於查詢
#用法:
book = book.objects.raw(
"select * from hello_book"
)for item in book:
print
(item.title)
官方文件:
相關api
1.get(**kwargs)
解釋:返回與篩選條件相匹配的model物件,返回結果有且只有乙個。
說明:如果符合條件的物件多於乙個丟擲multipleobjectsreturned異常,如果沒有找到丟擲doesnotexist異常
語法:modelname.objects.get(itemname=itemnamevalue)
例子:author.objects.get(id=1)
2.all()
解釋:查詢所有結果(懶載入),當查詢的時候並不真實傳送sql語句,用的時候才會真的去查詢
語法:modelname.objects.all()
例子:author.objects.all(id=1)
3.filter(**kwargs)
解釋:包含了與所給的篩選條件相匹配的queryset
語法:modelname.objects.filter(itemname=itemnamevalue)
例子:author.objects.filter(id=1)
4.exclude(**kwargs):
解釋:包含了與所給的篩選件不匹配的queryset,於filter正好相反
語法:modelname.objects.exclude(itemname=itemnamevalue)
例子:author.objects.filter(id=1)
5.order_by(*fields)
解釋:對查詢結果進行排序
語法:modelname.objects.all().order_by(「itemname」)
例子:author.objects.all().order_by(「id」)
6.reverse()
解釋:對查詢結果反向排序
語法:modelname.objects.all().order_by(「itemname」).reverse()
例子:author.objects.all().order_by(「id」)
7.distinct()
解釋:對查詢結果去重
語法:modelname.objects.all().distinct()
例子:author.objects.all().distinct()
8.values(*fields)
解釋:返回乙個valuesqueryset(乙個特殊的queryset)
說明:執行後得到的不是一系列model的例項物件,而是乙個可迭代的字段序列
語法:modelname.objects.filter(name=value).values(「name」,「name」)
例子:author.objects.filter(id=1).values(「name」,「id」)
9.values_list(*fields)
解釋:與values相似只是返回的是乙個元組
語法:modelname.objects.filter(name=value).values_list(「name」,「name」)
例子:author.objects.filter(id=1).values_list(「name」,「id」)
10.count()
解釋:返回資料庫中匹配查詢的物件數量
語法:modelname.objects.filter(itemname=itemnamevalue).count()
例子:author.objects.filter(name=「xiaol」).count()
11.first()/last()
解釋:第一條記錄/最後一條記錄
語法:modelname.objects.filter(itemname=itemnamevalue).first()
例子:author.objects.filter(name=「xiaol」).last()
關聯查詢:
方法:使用兩個下劃線(__)可以進行關聯查詢
例子:查詢autherdetail的資訊
語法:authordetail.objects.filter(id=「2」).values(「***」,「email」, 「author__name」)
聚合查詢:需要引入from django.db.models import *
方法:使用aggreagte關鍵字
用法:***.filter(查詢條件).aggregate(別名=聚合函式(『聚合字段』))
語法:author.objects.filter(name=「xiaol」).aggregate(mycount=count(『id』))
分組查詢:需要引入from django.db.models import *
方法:使用aggreagte關鍵字
用法:***.filter(分組字段).annotate(分組後操作)
語法:author.objects.filter(name=「xiaol」).annotate(mycount=count(『id』))
django學習筆記 (七)模型(資料庫)
django模型與資料庫相關,與資料庫相關的 一般寫在models.py中。django支援sqlite3,mysql,postgresql等資料庫,只需要在settings.py中配置即可,不用修改models.py的 將people models.py改為 from django.db impo...
資料庫增刪查
首先建乙個類繼承sqliteopenhelper重寫裡面的方法 package com.bw.uigaoji.sql import android.content.context import android.database.sqlite.sqlitedatabase import android...
資料庫的 查
資料庫的查詢是最複雜的我們單獨來講 查詢 select 1 最簡單的單錶查詢 1 查詢所有列 select select 學生id,班級id,學號,姓名 from a04學生表 2 查詢部分列 select 學號,姓名 from a04學生表 2 多表查詢 1 兩個表查詢 select a01學院表...