Student(S#,Sname,Sage,Ssex) 学生表

Course(C#,Cname,T#) 课程表

SC(S#,C#,score) 成绩表

Teacher(T#,Tname) 教师表

问题:

1、查询“001”课程比“002”课程成绩高的所有学生的学号;

select a.S#

from (select s#,score from SC where C#=’001′) a,

(select s#,score from SC where C#=’002′) b

where a.score>b.score and a.s#=b.s#;

2、查询平均成绩大于60分的同学的学号和平均成绩;

select S#,avg(score)

from sc

group by S# having avg(score) >60;

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

select Student.S#,Student.Sname,count(SC.C#),sum(score)

from Student left Outer join SC on Student.S#=SC.S#

group by Student.S#,Sname

4、查询姓“李”的老师的个数;

select count(distinct(Tname))

from Teacher

where Tname like ‘李%’;

5、查询没学过“叶平”老师课的同学的学号、姓名;

select Student.S#,Student.Sname

from Student

where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’);

6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S# and SC.C#=’001′and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#=’002′);

7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;

select S#,Sname

from Student

where S# in

(select S#

from SC ,Course ,Teacher

where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname=’叶平’ group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname=’叶平’));

8、查询所有课程成绩小于60分的同学的学号、姓名;

select S#,Sname

from Student

where S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);

9、查询没有学全所有课的同学的学号、姓名;

select Student.S#,Student.Sname

from Student,SC

where Student.S#=SC.S#

group by Student.S#,Student.Sname having count(C#)

10、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;

select S#,Sname

from Student,SC

where Student.S#=SC.S# and C# in (select C# from SC where S#='1001');

11、删除学习“叶平”老师课的SC表记录;

Delect SC

from course ,Teacher

where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';

12、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分

SELECT L.C# 课程ID,L.score 最高分,R.score 最低分

FROM SC L ,SC R

WHERE L.C# = R.C#

and

L.score = (SELECT MAX(IL.score)

FROM SC IL,Student IM

WHERE IL.C# = L.C# and IM.S#=IL.S#

GROUP BY IL.C#)

and

R.Score = (SELECT MIN(IR.score)

FROM SC IR

WHERE IR.C# = R.C#

GROUP BY IR.C# );

13、查询学生平均成绩及其名次

SELECT 1+(SELECT COUNT( distinct 平均成绩)

FROM (SELECT S#,AVG(score) 平均成绩

FROM SC

GROUP BY S# ) T1

WHERE 平均成绩 > T2.平均成绩) 名次, S# 学生学号,平均成绩

FROM (SELECT S#,AVG(score) 平均成绩 FROM SC GROUP BY S# ) T2

ORDER BY 平均成绩 desc;

14、查询各科成绩前三名的记录:(不考虑成绩并列情况)

SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数

FROM SC t1

WHERE score IN (SELECT TOP 3 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC)

ORDER BY t1.C#;

15、查询每门功成绩最好的前两名

SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数

FROM SC t1

WHERE score IN (SELECT TOP 2 score

FROM SC

WHERE t1.C#= C#

ORDER BY score DESC )

ORDER BY t1.C#;

补充:

已经知道原表

year salary

——————

2000 1000

2001 2000

2002 3000

2003 4000

解:

select b.year,sum(a.salary)

from salary a,salary b

where a.year<=b.year

group by b.year

order by b.year;

在面试过程中多次碰到一道SQL查询的题目,查询A(ID,Name)表中第31至40条记录,ID作为主键可能是不是连续增长的列,完整的查询语句如下:

方法一:

select top 10 *

from A

where ID >(select max(ID) from (select top 30 ID from A order by ID ) T) order by ID

方法二:

select top 10 *

from A

where ID not In (select top 30 ID from A order by ID)

order by ID

java面试题学生表成绩表老师表_经典的SQL语句面试题相关推荐

  1. 数据分析sql面试必会6题经典_经典的SQL语句面试题

    2015-11-15 06:30:02 阅读( 383 ) Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score ...

  2. 统计成绩java最高成绩_从键盘输入本次 Java 考试五位学生的成绩,求考试成绩最高分。_学小易找答案...

    [简答题]你准备去海南旅游,现在要订购机票.机票的价格受季节旺季.淡季影响,而且头等舱和经济舱价格也不同.假设机票原价为5000元,4~10月为旺季,旺季头等舱打九折,经济舱打八折,淡季头等舱打五折, ...

  3. server sql 多表事物 自增id_最实用的 SQL 语句收藏,程序员看完这篇就够了!

    分享阅读: 从自媒体写手,到程序员大神,我花了整整5年时间才拿下腾讯offer(Java方向)​zhuanlan.zhihu.com 一个月读完这本<程序员宝典>,我从网易严选跳槽到了阿里 ...

  4. 建立“图书_读者”数据库及如下 3 个表,并输入实验数据,用 SQL 语句实现如下五个查询(opengauss)

    建立"图书_读者"数据库及如下 3 个表,并输入实验数据,用 SQL 语句实现如下五个查询(opengauss) 题目所涉及的表如下 注:使用opengauss与HeidiSQL: ...

  5. 手写sql语句面试题

    手写sql语句面试题 一.数据表 二.简单查询 1.查询姓名中带"猴"的学生名单 三.汇总分析 1.查询选了课程的学生人数 2.查询各科成绩最高和最低的分, 以如下的形式显示:课程 ...

  6. 一道SQL语句面试题

    最近面试了几个人,给他们出了一道SQL语句面试题,但是反应效果不太理想.题目如下: 表scores有四个字段,学生stu.班级class.学院institute.分数score, 要求返回:班级考试人 ...

  7. java用tkmapper分组查询_tk.mybatis 中的通用Mapper自定义SQL语句

    前言 今天就是想写点什么,其实还有很多没写的东西呢!笔记里边好多东西都挺好的,经验加实践总结出来的.就是都没有系统的整理,至于原因吧,有很多,最重要的一点就是我有点懒.今天写个最简单的东西,现在的开发 ...

  8. 一道SQL语句面试题,关于group by

    一道SQL语句面试题,关于group by 表内容:2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-1 ...

  9. java存储过程与sql语句_存储过程与SQL语句怎么选择

    应用存储过程的优点: 1.具有更好的性能 存储过程是预编译的,只在创建时进行编译,以后每次执行存储过程都不需再重新编译, 而一般 SQL 语句每执行一次就编译一次,因此使用存储过程可以提高数据库执行速 ...

  10. JDBC连接mysql、创建表、操作数据、PreparedStatement防注入、sql语句返回值类型知识汇总

    JDBC连接过程: import java.sql.*;/*** Description:* Created by CWG on 2020/10/29 21:05*/ public class Con ...

最新文章

  1. 打造属于自己的图文符号库
  2. python安装numpy-NumPy 安装
  3. 【杂谈】2020年有三AI计算机视觉培养计划详解,该不该学怎么学CV的简单讨论...
  4. 如何防御DDoS攻击
  5. 文件没有图标,无法打开(以pdf为例)
  6. linux一路填坑...
  7. 计算机科学与技术毕业答辩流程,计算机科学与技术学院毕业答辩工作细则
  8. 一张图看懂字节跳动8年创业史,太励志了吧
  9. LeetCode:63. 不同路径 II(python、c++)
  10. mysql byte函数_mysql8 参考手册-format_bytes()函数
  11. 生产者消费者伪码_[线程同步]生产者消费者代码实现
  12. MSP---企业上云需要考虑的问题
  13. Win7(x64)升级到Win10
  14. 常用电子产品行业标准及认证
  15. ie8 升级页面html,一个需要兼容到IE8的项目
  16. 韩立刚计算机网络笔记-第01章 计算机网络详解
  17. java中打开eclipse_关于Java:如何在Eclipse中打开jar文件
  18. 深度学习数据增强方法-内含(亮度增强,对比度增强,旋转图图像,翻转图像,仿射变化扩充图像,错切变化扩充图像,HSV数据增强)七种方式进行增强-每种扩充一张实现7倍扩)+ 图像缩放代码-批量
  19. 【无标题】二进制STL文件解析 计算面积和体积与根据高度计算部分体积
  20. cad应用技巧:图层特性管理器

热门文章

  1. sam格式的结构和意义_NGS数据格式02-SAM/BAM最详细解读
  2. win7设置html,Windows 7自动备份设置图解 设置Win7系统备份方式
  3. 恢复linux硬盘数据,Linux下的硬盘数据如何恢复?
  4. android 拍照 对焦,Android Camera2 拍照(四)——对焦模式
  5. Windows基础篇学习(上)
  6. 安防领域名词explain
  7. 对于路由地址并未切换,但是地址栏发生地址发生变化原因
  8. 小度wifi在window server2008R2系统下创建不了
  9. 最简单易懂的git介绍
  10. 无锡python程序员_Python程序员学习路线图