![](https://img.kancloud.cn/41/e0/41e066af9a6c25a24868d9667253ec98_1241x333.jpg)
## 假设有以下ORM模型
```
from django.db import models
class Student(models.Model):
"""学生表"""
name = models.CharField(max_length=100)
gender = models.SmallIntegerField()
class Meta:
db_table = 'student'
class Course(models.Model):
"""课程表"""
name = models.CharField(max_length=100)
teacher = models.ForeignKey("Teacher",on_delete=models.SET_NULL,null=True)
class Meta:
db_table = 'course'
class Score(models.Model):
"""分数表"""
student = models.ForeignKey("Student",on_delete=models.CASCADE)
course = models.ForeignKey("Course",on_delete=models.CASCADE)
number = models.FloatField()
class Meta:
db_table = 'score'
class Teacher(models.Model):
"""老师表"""
name = models.CharField(max_length=100)
class Meta:
db_table = 'teacher'
```
### 使用之前学到过的操作实现下面的查询操作:
1.查询平均成绩大于60分的同学的id和平均成绩;
2.查询所有同学的id、姓名、选课的数量、总成绩;
3.查询姓“李”的老师的个数;
4.查询没学过“李老师”课的同学的id、姓名;
5.查询学过课程id为1和2的所有同学的id、姓名;
6.查询所有课程成绩小于60分的同学的id和姓名;
7.查询没有学全所有课的同学的id、姓名;
8.查询所有学生的姓名、平均分,并且按照平均分从高到低排序;
9.查询各科成绩的最高和最低分,以如下形式显示:课程ID,课程名称,最高分,最低分;
10.统计总共有多少女生,多少男生;
11.将“黄老师”的每一门课程都在原来的基础之上加5分;
12.查询两门以上不及格的同学的id、姓名、以及不及格课程数;
13.查询每门课的选课人数;
- 空白目录
- 1-Django前导知识
- 1-1-虚拟环境
- 1-2-Django框架介绍与环境搭建
- 2-URL与视图
- 2-1-URL与视图
- 3-模板
- 3-1-模板介绍
- 3-2-模板变量
- 3-3-常用标签
- 3-4-模板常用过滤器
- 3-5-模板结构优化
- 3-6-加载静态文件
- 4-数据库
- 4-1-操作数据库
- 4-2-图书管理系统
- 4-3-ORM模型介绍
- 4-4-ORM模型的增删改查
- 4-5-模型常用属性
- 4-6-外键和表
- 4-7-查询操作
- 4-8-QuerySet的方法
- 4-9-ORM模型练习
- 4-10-ORM模型迁移
- 5-视图高级
- 1-Django限制请求method
- 2-页面重定向
- 3-HttpRequest对象
- 4-HttpResponse对象
- 5-类视图
- 6-错误处理
- 6-表单
- 1-用表单验证数据
- 2-ModelForm
- 3-文件上传
- 7-session和cookie
- 1-session和cookie
- 8-memcached
- 1-memcached
- 9-阿里云部署
- 阿里云部署