zoukankan      html  css  js  c++  java
  • 经典SQL面试题(转)

    http://www.cnblogs.com/kcher90/archive/2013/03/13/2957932.html

    有三个表,如果学生缺考,那么在成绩表中就不存在这个学生的这门课程成绩的记录,写一段SQL语句,检索出每个学生缺考的科目。
    A 学生表(student)
    字段1 学生号(s_id)
    字段2 学生名(s_name)

    B 科目表(course)
    字段1 科目号(c_id)
    字段2 科目名(c_name)

    C 成绩表(grade)
    字段1 成绩号(g_id)
    字段2 学生号(s_id)
    字段3 科目号(c_id)
    字段4 成绩(score)

    select * from student join course left join grade on student.s_id=grade.s_id and course.c_id=grade.c_id where grade.score is null;

    2.有如下表

    日期(rstime) 结果(result)
    2005-05-09
    2005-05-09
    2005-05-09
    2005-05-09
    2005-05-10
    2005-05-10
    2005-05-10

    如果要生成下列结果,该如何写sql语句?

    日期
    2005-05-09 2 2
    2005-05-10 1

    2

    select rstime,sum(case result when '' then 1 else 0 end)as 胜,
    sum(case result when '' then 1 else 0 end)asfrom result group by rstime;

    3.用一条SQL语句,查询出成绩表(grade)每门课都大于80分的学生姓名

    name course score
    张三 语文 81
    张三 数学 75
    李四 语文 76
    李四 数学 90
    王五 语文 81
    王五 数学 100
    王五 英语 90
    select distinct name from grade  where  name not in (select distinct name from grade where score<=80)


    1.原表:

    courseid coursename score
    1 java 70
    2 oracle 90
    3 xml 40
    4 jsp 30
    5 servlet 80

    为了方便阅读,查询此表后的显示结果如下(及格分数为60分):

    courseid coursename score mark
    1 java 70 pass
    2 oracle 90 pass
    3 xml 40 fail
    4 jsp 30 fail
    5 servlet 80 pass
    select *,case when score>=60 then 'pass' else 'fail' end as 'mark' from temp;

    5.学生表(stu),如下:

    自动编号 学号 姓名 课程编号 课程名称 分数
    1 2005001 张三 0001   数学 69
    2 2005002 李四 0001   数学 89
    3 2005001 张三 0001   数学

    69

    删除除了自动编号不同,其他字段都相同的学生冗余信息。

    create table temp as select 自动编号 from stu group by 学号,姓名,课程编号,课程名称,分数;
    delete from stu where 自动编号 not in (select 自动编号 from temp);
    
    --其实也可以这样的--
    delete from stu where id not in
    (select max(id) from stu group  by no,course,fenshu )
  • 相关阅读:
    JVM-对象的创建
    maven依赖无法下载依赖包,PKIX认证不通过
    Object里面的方法
    Java多线程之volatile与synchronized比较
    java 二叉树的创建 遍历
    设计模式之单例模式
    博客园自定义主题 皮肤
    mysql索引 b+树
    sleep和wait的区别(转)
    final/finally/finalize的区别(转)
  • 原文地址:https://www.cnblogs.com/canyangfeixue/p/3268830.html
Copyright © 2011-2022 走看看