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)as 负 from 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 )

经典SQL面试题(转)的更多相关文章

  1. Oracle的一些经典SQL面试题

    实例1:测试数据: create table nba( team   varchar2(20), year number(4) ) SQL> select * from nba; TEAM    ...

  2. 经典SQL面试题(转)

    以下题目都在MySQL上测试可行,有疏漏或有更优化的解决方法的话欢迎大家提出,我会持续更新的:) 有三个表,如果学生缺考,那么在成绩表中就不存在这个学生的这门课程成绩的记录,写一段SQL语句,检索出每 ...

  3. 经典sql面试题(学生表_课程表_成绩表_教师表)

    转载:https://www.cnblogs.com/qixuejia/p/3637735.html 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cna ...

  4. MySql_34道经典Sql试题

    MySql_34道经典Sql试题   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xiaouncle/article/details/799390 ...

  5. (转)经典SQL查询语句大全

    (转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

  6. 浅谈c#的三个高级参数ref out 和Params C#中is与as的区别分析 “登陆”与“登录”有何区别 经典SQL语句大全(绝对的经典)

    浅谈c#的三个高级参数ref out 和Params   c#的三个高级参数ref out 和Params 前言:在我们学习c#基础的时候,我们会学习到c#的三个高级的参数,分别是out .ref 和 ...

  7. 经典sql语句大全,【转载】

    经典SQL查询语句大全   一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql se ...

  8. 汽车之家一道SQL 面试题,大家闲来无事都来敲一敲

    写在前面 上周去汽车之家面试,拿到这个SQL笔试题顿时感觉到有些陌生,因为好长时间不写SQL语句了,当时只写了表设计,示例数据和SQL语句都没写出来. 汽车之家应该用的SQL Server, 编程题一 ...

  9. sql面试题一 学生成绩

    sql面试题一 学生成绩   原帖链接:http://topic.csdn.net/u/20081020/15/1ABF54D0-F401-42AB-A75E-DF90027CEBA0.html 表架 ...

随机推荐

  1. Openerp workflow 工作流批注模块

    转自:http://blog.csdn.net/yeahliu/article/details/17207289 2013-12-22 添加workflow_stop标识,感谢广州-jerry 201 ...

  2. poj 2388 insert sorting

    /** \brief poj 2388 insert sorting 2015 6 12 * * \param * \param * \return * */ #include <iostrea ...

  3. Matlab变量、分支语句和循环语句

    一.Matlab的变量 1.变量的命名 Matlab的变量名由数字.字母和下划线组成,可是仅仅能由字母开头.大写和小写敏感,最大长度为63个字符.不能使用Matlab的关键字作为变量名,应当避免使用函 ...

  4. Java反射机制及Method.invoke详解

    JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为ja ...

  5. Android 弹幕效果开发案例

    概述 现在有个很流行的效果就是弹幕效果,满屏幕的文字从右到左飘来飘去.看的眼花缭乱,看起来还蛮cool的 现在就是来实现这一的一个效果,大部分的都是从右向左移动漂移,本文的效果中也支持从左向右的漂移移 ...

  6. android中checkbox的padding引发的问题

    自己定义checkbox中的勾选框图标.这次由于想偷懒.图标弄的大了些.然后一系列的问题就都引出来了. 1.图标比checkbox的layout_height高.看不见了. 非常吐血吧,Compoun ...

  7. FlatBuffers与protobuf性能比較

    FlatBuffers发布时.顺便也发布了它的性能数据,详细数据请见Benchmark. 它的測试用例由下面数据构成"a set of about 10 objects containing ...

  8. Linux下 iptables防火墙 放开相关port 拒绝相关port 及查看已放开port

    我用的是fedora 14 1. 查看iptables 防火墙已经开启的port:/etc/init.d/iptables status [root@hzswtb2-mpc ~]#/etc/rc.d/ ...

  9. Eclipse默认编码格式设置方式

    看图即可 STEP ONE: STEP TWO: STEP THREE: STEP FOUR: 项目右击——>Properties 参阅: eclipse编码格式设置 - AlanLee(Jav ...

  10. blender, 创建多边形面片

    按a键清除所有选择,进入Edit Mode,选vertex select方式.然后按住control,使用MLB连续画多个顶点,形成一个多边形,如图所示: 然后同时选中两个端点,点Make Edge/ ...