摘要
在查询的同时,可以对获得的数据进行排序,抽选等操作
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.也可以使用符号进行进行比较 > < <= >=
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降序获取一定的数量 limit
stus = Student.query.order_by('-s_id').limit(1)
8.获取年龄最大的一个 first
stus = Student.query.order_by('-s_age').first()
9. 跳过数据获取 offset
# 跳过2个数据查询2个数据
stus = Student.query.order_by('-s_age').offset(2).limit(2)
10.get
只能获取一个,只能用于主键
stus = Student.query.get(24)
11.filter
获得指定的id的数据
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关系
stus = Student.query.filter(or_(Student.s_age == 18, Student.s_name == '裴敏')) # 或者关系
stus = Student.query.filter(not_(Student.s_age == 18)) # 非 条件
13.多条件查询
stus = Student.query.filter(Student.s_name == '黄蓉', Student.s_age == 18)
网友评论