MYSQL面试题整合

来源:互联网 发布:淘宝联盟 微信遭投诉 编辑:程序博客网 时间:2024/05/17 23:23

题1:

学生表(student)

sno     sname     sage
1       周杰伦     18
2       周润发     18
3       吴孟达     25
4       刘德华     25
5       李连杰     29


课程表(cource)
cno        cname
1     数学
2     语文
3     英语


学生成绩表(sc)
sno   cno   score

问:

  • 查询 1 课程比 2 课程高的所有学生的编号;(同表转成两个对象进行比较)
[sql] view plain copy
  1. SELECT * FROM sc a, sc b WHERE a.cno = 1 AND b.cno = 2 AND a.sno = b.sno AND a.score > b.score;  

  • 查询所有学生的学号、姓名、选课数、总成绩;
[sql] view plain copy
    1. SELECT a.sno,a.sname,count(sc.sno),sum(score) FROM student a,sc  
    2. WHERE a.sno=sc.snoGROUP BYa.sno

  • 查询没有学完所有课程的学生学号、姓名;(用子查询、group by、HAVING)
[sql] view plain copy
  1. SELECT a.SNO ,a.SNAME  
  2. FROM student a  
  3. WHERE a.`SNO` NOT IN  
  4.     ( SELECT b.`SNO` FROM SC b  
  5.      GROUP BY b.`SNO` HAVING COUNT(*) =  
  6.        ( SELECT COUNT(*)  
  7.         FROM course) );  

题2: