# 表.objects.create
# 方法一
a = User.objects.create(userNum=123, name='ABB', age=18, sex='男')
# 方法二
d = dict(userNum=123, name='ABB', age=18, sex='男')
a = User.objects.create(**d)
#方法三
a = User(userNum=123, name='ABB', age=18, sex='男')
a.save()
# 表.objects.filter().delete()
# 方法一 刪除全部內容
User.objects.all().delete()
#方法二 刪除一條name為ABC的數據
User.objects.filter(name='ABC').delete()
#方法三 刪除多條數據
User.objects.filter(age=18).delete()
刪除過程中數據設有外鍵字段,就會同時刪除外鍵關聯的數據,刪除模式參考models.py中設置的PROTECT、SET_NULL等
# 表.objects.filter().update()
# 方法一 修改name為ABC的性別為gay
User.objects.filter(name='ABC').update(sex='gay')
# 方法二
a = dict(age='1')
User.objects.filter(name='ABC').update(**a)
# 方法三 使用F方法實現自增/自減
from djanto.db.models import F
User.objects.filter(name='ABC').update(age=F('age')+1)
# select * from user 全表查詢
a = User.objects.all()
# 查第一條
a[0].name
# select * from user LIMIT3 查前3條
a = User.objects.all()[:3]
# filter 也可添加多個條件
User.objects.filter(name='ABC',age=18)
# SQL中or方法 select * from user where name='ABC' or age=18 ,需要引入 Q
from django.db.models import Q
User.objects.filter(Q(name='ABC') | Q(age=18))
# SQL中not方法 select * from user where not name='ABC' ,在Q前加~
User.objects.filter(~Q(name='ABC'))
# 統計數量
User.objects.filter(name='ABC').count()
# 去重 select DISTINCT name from user where name='ABC' ,distinct無需設置參數,去重方式根據values
a = User.objects.values('name').filter(name='ABC').distinct()
# 降序排序查詢,降序在order_by裡設置 '-'
User.objects.order_by('-age')