数据库简单练习

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

创建表格

  1. CREATE TABLE `student` (
  2. `sid` varchar(10) NOT NULL,
  3. `sName` varchar(20) DEFAULT NULL,
  4. `sAge` datetime DEFAULT '1980-10-12 23:12:36',
  5. `sSex` varchar(10) DEFAULT NULL,
  6. PRIMARY KEY (`sid`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  8. CREATE TABLE `sc` (
  9. `sid` varchar(10) DEFAULT NULL,
  10. `cid` varchar(10) DEFAULT NULL,
  11. `score` int(10) DEFAULT NULL
  12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  13. CREATE TABLE `course` (
  14. `cid` varchar(10) NOT NULL,
  15. `cName` varchar(10) DEFAULT NULL,
  16. `tid` int(20) DEFAULT NULL,
  17. PRIMARY KEY (`cid`)
  18. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

学生表

成绩表

课程表

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

  1. #查询“001”课程比“002”课程成绩高的所有学生的学号;
  2. select a.sid from (select * from sc where cid="001") a join
  3. (select * from sc where cid="002") b on a.sid=b.sid where a.score>b.score group by a.sid
  4. #查询平均成绩大于60分的同学的学号和平均成绩;
  5. select sid ,AVG(score) from sc GROUP BY sid having avg(score)>60
  6. #查询所有同学的学号、姓名、选课数、总成绩;
  7. 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

相关文章