您的位置:首页 > 编程语言 > Go语言

django orm操作练习

2016-01-27 14:29 597 查看
def query(request):
# -- 1、 查询Student表中的所有记录的Sname、Ssex和classno列。
# SELECT sname,ssex,class FROM student;
# result = Student.objects.values('sname', 'ssex', 'classno')

# -- 2、 查询教师所有的单位即不重复的Depart列。
# SELECT DISTINCT(depart) FROM teacher;
# result = Teacher.objects.values('depart').distinct()

# -- 3、 查询Student表的所有记录。
# SELECT * FROM student;
# result = Student.objects.all()

# -- 4、 查询Score表中成绩在60到80之间的所有记录。
# SELECT * FROM score WHERE grade BETWEEN 60 AND 80;
# SELECT * FROM score WHERE grade>=60 AND grade<=80;
# result = Score.objects.filter(grade__range=(60, 80))
# result = Score.objects.filter(grade__gte=60, grade__lte=80)

# -- 5、 查询Score表中成绩为85,86或88的记录。
# SELECT * FROM score WHERE grade IN (85,86,88);
# result = Score.objects.filter(grade__in=(85,86,88))
# Q F
# result = Score.objects.filter(Q(grade=85) | Q(grade=86) | Q(grade=88))

# -- 6、 查询Student表中“95031”班或性别为“女”的同学记录。
# SELECT * FROM student WHERE class='95031' OR ssex='女';
# result = Student.objects.filter(Q(classno='95031') | Q(ssex=u'女'))

# -- 7、 以Class降序查询Student表的所有记录。
# SELECT * FROM student ORDER BY class DESC;
# result = Student.objects.order_by('-classno')

# -- 8、 以Cno升序、grade降序查询Score表的所有记录。
# SELECT * FROM score ORDER BY cno ASC,grade DESC;
# result = Score.objects.order_by('cno', '-grade')

# -- 9、 查询“95031”班的学生人数。
# SELECT COUNT(*) AS total_sum FROM student GROUP BY class HAVING class='95031';
# SELECT COUNT(*) AS total_sum FROM student where class='95031'
# result = len(Student.objects.filter(classno='95031')) # 错误
# result = Student.objects.filter(classno='95031').aggregate(Count('sname'))
# result = Student.objects.filter(classno="95031").count()

# -- 10、查询Score表中的最高分的学生学号和课程号。
# SELECT sno,cno FROM score ORDER BY grade DESC LIMIT 1;
# result = Score.objects.values('sno', 'cno').order_by('-grade')[:1]

# -- 11、查询‘3-105’号课程的平均分。
# SELECT ROUND(AVG(grade),2) AS avg_grade FROM score
# GROUP BY cno HAVING cno='3-105';
# result = Score.objects.filter(cno='3-105').aggregate(Avg('grade'))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  orm django