摘要
在查詢的同時,可以對獲得的數(shù)據(jù)進(jìn)行排序立膛,抽選等操作
1.大于 __gt__
/ 大于等于 __ge__
使用雙下劃線
這跟django中的操作是不同的揪罕,django是gt / gte
stus = Student.query.filter(Student.s_age.__gt__(16)) # 大于
stus = Student.query.filter(Student.s_age.__ge__(16)) # 大于等于
2.小余 __lt__
/ 小余等于__le__
stus = Student.query.filter(Student.s_age.__lt__(16))
stus = Student.query.filter(Student.s_age.__le__(16))
3.也可以使用符號進(jìn)行進(jìn)行比較 > < <= >=
stus = Student.query.filter(Student.s_age < 16)
4. 是否屬于 in_
stus = Student.query.filter(Student.s_age.in_([16, 22, 33, 44, 55, 8, 5]))
5.獲取所有 all
sql = 'select * from Student;'
stus = db.session.execute(sql)
stus = Student.query.order_by('s_id')
6.降序排列獲取所有 order_by
這里不需要使用all
stus = Student.query.order_by('s_id')
7. 按照id降序獲取一定的數(shù)量 limit
stus = Student.query.order_by('-s_id').limit(1)
8.獲取年齡最大的一個 first
stus = Student.query.order_by('-s_age').first()
9. 跳過數(shù)據(jù)獲取 offset
# 跳過2個數(shù)據(jù)查詢2個數(shù)據(jù)
stus = Student.query.order_by('-s_age').offset(2).limit(2)
10.get
只能獲取一個,只能用于主鍵
stus = Student.query.get(24)
11.filter
獲得指定的id的數(shù)據(jù)
stus = Student.query.filter(Student.s_id == 24)
12.and_ or_ not_ 多條件查詢
stus = Student.query.filter(and_(Student.s_age == 18, Student.s_name == '黃蓉')) # and關(guān)系
stus = Student.query.filter(or_(Student.s_age == 18, Student.s_name == '裴敏')) # 或者關(guān)系
stus = Student.query.filter(not_(Student.s_age == 18)) # 非 條件
13.多條件查詢
stus = Student.query.filter(Student.s_name == '黃蓉', Student.s_age == 18)