1、问题背景

(1)学生表(学号,姓名,年龄,性别)

student(S#,Sname,Sage,Ssex)

(2)课程表(课程编号,课程名称,教师编号)

course(C#,Cname,T#)

(3)成绩表(学号,课程编号,分数)

student_score(S#,C#,score)

(4)教师表(教师编号,教师名称)

teacher(T#,tname)

2、创建表

(1)学生表

Create Table

CREATE TABLE `student` (
`S#` bigint(12) NOT NULL COMMENT '学号',
`Sname` varchar(20) DEFAULT NULL COMMENT '姓名',
`Sage` int(3) DEFAULT NULL COMMENT '年龄',
`Ssex` varchar(4) DEFAULT NULL COMMENT '性别',
PRIMARY KEY (`S#`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

(2)课程表

Create Table

CREATE TABLE `cource` (
`C#` bigint(12) NOT NULL COMMENT '课程编号',
`Cname` varchar(20) DEFAULT NULL COMMENT '课程名称',
`T#` bigint(12) DEFAULT NULL COMMENT '教师编号',
PRIMARY KEY (`C#`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

(3)成绩表

Create Table

CREATE TABLE `student_score` (
`S#` bigint(12) NOT NULL COMMENT '学号',
`C#` bigint(12) NOT NULL COMMENT '课程编号',
`score` double DEFAULT NULL COMMENT '分数',
PRIMARY KEY (`S#`,`C#`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

(4)教师表

Create Table

CREATE TABLE `teacher` (
`T#` bigint(12) NOT NULL COMMENT '教师编号',
`tname` varchar(20) DEFAULT NULL COMMENT '教师名称',
PRIMARY KEY (`T#`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

3、问题

(1)查询“1”课程比“2”课程成绩高的全部学生的学号;

SELECT
a.`S#`
FROM
(SELECT
sc.`S#`,
sc.`score`
FROM
student_score sc
WHERE sc.`C#` = 1) a,
(SELECT
sc.`S#`,
sc.`score`
FROM
student_score sc `student_score`
WHERE sc.`C#` = 2) b
WHERE a.score > b.score
AND a.`S#` = b.`S#` ;

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

(2)查询平均成绩大于60分的同学的学号和平均成绩

SELECT
sc.`S#`,
AVG(sc.`score`)
FROM
student_score sc
GROUP BY sc.`S#`
HAVING AVG(sc.`score`) > 60 ;

最新文章

  1. 利用Dockerfile构建一个基于centos 7,包括java 8, tomcat 7,php ,mysql+mycat的镜像
  2. 如何评价苹果中国官网 iOS 8 介绍页面的文案「开发者的大事、大快所有人心的大好事」?[转自知乎]
  3. jq封装的tab切换
  4. 对target="framename"的理解(实现分页的demo)
  5. Linux下svn提交文件后自动同步更新到网站目录
  6. gem
  7. Maven之 学习资料
  8. python sqlite 查询表的字段名 列名
  9. 柯里化函数之Javascript
  10. MVC — 初步理解IIS工作流程
  11. LinQ 创建连接、简单增删改查
  12. PAT 1002. A+B for Polynomials (25) 简单模拟
  13. 走进Linux01-磁盘分区与文件夹结构
  14. cygwin 下安装python MySQLdb
  15. React Native动画总结
  16. Linux交换分区使用过多的处理办法
  17. 问题:CGI返回给前端的汉字数据是乱码(已解决)
  18. ML.NET 示例:多类分类之鸢尾花分类
  19. 异常小结:上一张图搞清楚Java的异常机制
  20. vue 路由拦截、axios请求拦截

热门文章

  1. Linux 学习(二)
  2. setTimeout 0
  3. oracle数据库定时备份
  4. 如何在linux使用nmap端口扫描工具扫描网段内开放的端口
  5. CAD绘制多行文字
  6. BigDecimal舍入规则
  7. UVA - 247 Calling Circles(Floyd求传递闭包)
  8. Gym - 101670E Forest Picture (CTU Open Contest 2017 模拟)
  9. 运行/调试你的PHP代码
  10. buf.writeUInt8()函数详解