新建一张学员信息表(student),要求:
1. 字段如下:学号(sid),姓名(name),性别(sex),年龄(age),地址(address).
2. 分别为字段添加约束:学号为主键,姓名为非空,性别为检查约束,年龄为检查约束,地址为默认约束.
3. 为表建立自增值(sid), 建议初始值从为 1001, 增量为 1.
4. 插入记录.
新建一张课程表(course),要求:
1. 字段如下:课程编号(cid),课程名称(subject).
2. 分别为字段添加约束:课程编号为主键,课程名称为非空.
3. 为表建立自增值(cid), 建议初始值从为 1, 增量为 1.
4. 插入记录.
新建一张学员考试成绩表(grade),要求:
1. 字段如下:成绩编号(gid),学号(sid),课程编号(cid),考试成绩(score).
2. 分别为字段添加约束:成绩编号为主键,学号为外键,课程编号为外键,考试成绩为非空.
3. 为表建立自增值(gid), 建议初始值从为 101, 增量为 1.
4. 插入记录.
回顾分组查询:
1. group by
用途:对结果集进行分组,常与汇总函数一起使用.
2. having
用途:指定群组或汇总的搜寻条件。
注:having 通常与 group by 子句同时使用。不使用 group 时,having 则与 where 子句功能相似。
针对以上三张表,要求完成如下:
1. 按照课程编号分组并求出每一组的平均分数(每门课程的平均分)
2. 按照课程编号分组并求出每一组及格人数(grade >= 60)的平均分数(每门课程的及格人数的平均分)
3. 求每个学员所有的课程的平均分
4. 求每个学员所有的(考试成绩)及格课程的平均分
5. 每次内部测试不同学员的平均成绩(每个学员的每门课程的平均分)
6. 查询补考过的学员的平均成绩 (求出学员的课程编号(cid)在分组内出现过一次以上)(每个学员的每门课程的课程编号出现过一次以上)
7. 使用多表内连接查询,求出学员的学号,姓名,考号,科目和成绩
8. 建立一张视图,要求字段为中文,包含学员的学号,姓名,考号,科目,成绩这些字段
9. 创建触发器,实现学生表与课程表更新时成绩表作同步更新。