数据库简单练习

x33g5p2x  于2021-12-09 转载在 其他  
字(0.9k)|赞(0)|评价(0)|浏览(307)

创建表格

CREATE TABLE `student` (
  `sid` varchar(10) NOT NULL,
  `sName` varchar(20) DEFAULT NULL,
  `sAge` datetime DEFAULT '1980-10-12 23:12:36',
  `sSex` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `sc` (
  `sid` varchar(10) DEFAULT NULL,
  `cid` varchar(10) DEFAULT NULL,
  `score` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `course` (
  `cid` varchar(10) NOT NULL,
  `cName` varchar(10) DEFAULT NULL,
  `tid` int(20) DEFAULT NULL,
  PRIMARY KEY (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

学生表

成绩表

课程表

练习:
1.查询“001”课程比“002”课程成绩高的所有学生的学号;
2.查询平均成绩大于60分的同学的学号和平均成绩;
3.查询所有同学的学号、姓名、选课数、总成绩;
答案

#查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.sid from (select * from sc where cid="001") a join 
(select * from sc where cid="002") b on a.sid=b.sid where a.score>b.score group by a.sid

#查询平均成绩大于60分的同学的学号和平均成绩;
select sid ,AVG(score) from sc GROUP BY sid having avg(score)>60

#查询所有同学的学号、姓名、选课数、总成绩;

select s.sName,s.sid,count(sc.cid),sum(sc.score) from student s join sc on sc.sid=s.sid  group by sc.sid

相关文章