一道SQL语句的面试题目

今天一个朋友发了一道题目给我,我把此题目贴出来,以便大伙看看,共同研究研究。
题目:
已知关系模式:
1、s (sno,sname) 学生关系。sno 为学号,sname 为姓名
2、c (cno,cname,cteacher) 课程关系cno 为课程号,cname 为课程名,cteacher 为任课教师
3、sc(sno,cno,scgrade) 选课关系。scgrade 为成绩
要求实现如下5 个处理:
1.找出没有选修过“李明”老师讲授课程的所有学生姓名
2.列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
3.列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
4.列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
5.列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩

解题:

1.找出没有选修过“李明”老师讲授课程的所有学生姓名

Select Sname As 学生姓名 From s Where Not Exists (Select * From c, Sc Where c.Cno = Sc.Cno And Cteacher = ‘李明‘ And Sc.Sno = s.Sno);Select Sname As 学生姓名 From s Where Sno Not In (Select Sno From c, Sc Where c.Cno = Sc.Cno And Cteacher = ‘李明‘);

2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩

Select s.Sno As 学生学号, s.Sname As 学生姓名, Avg(Sc.Scgrade) As 平均成绩 From s, Sc Where Sc.Sno = s.Sno And Sc.Sno In (Select Sc.Sno From Sc Where Sc.Scgrade < 60 Group By Sc.Sno Having Count(*) > 2) Group By s.Sno, s.Sname;

3. 列出既学过“01”号课程,又学过“02”号课程的所有学生姓名

select s.sno as 学生学号,s.sname as 学生姓名 from s where sno in(select sc.sno as 学生学号 from c,sc where c.cno=sc.cno and c.cno in(‘01‘,‘02‘) group by sno having count(distinct sc.cno)=2);
4. 列出“01”号课成绩比“02”号同学该门课成绩高的所有学生的学号

select sc1.sno as 学生学号 from sc as sc1,c as c1,sc as sc2,c as c2where sc1.cno=c1.cno and c1.cno=‘01‘ and sc2.cno=c2.cno and c2.cno=‘02‘and sc1.scgrade>sc2.scgrade group by sc1.sno;

5. 列出“01”号课成绩比“02”号课成绩高的所有学生的学号及其“01”号课和“02”号课的成绩

select sc1.sno as 学生学号, sc1.scgrade as no1grade ,sc2.scgrade as no2gradefrom sc as sc1,c as c1,sc as sc2,c as c2where sc1.cno=c1.cno and c1.cno=‘01‘ and sc2.cno=c2.cno and c2.cno=‘02‘and sc1.scgrade>sc2.scgrade group by sc1.sno;

一道SQL语句的面试题目,布布扣,bubuko.com

时间: 2024-10-20 11:30:11

一道SQL语句的面试题目的相关文章

创建SQL语句_面试

创建一个表:create table if not exists Teachaers(tea_id integer  primary key autoincrement,tea_name text,tea_gender text,tea_age interger,tea_salary text) primary key  主键 create table if not exists Teachaers(tea_id integer  primary key autoincrement,tea_na

sql语句面试总结

1.用一条SQL语句 查询出每门课都大于80分的学生姓名 name   kecheng   fenshu 张三     语文       81张三     数学       75李四     语文       76李四     数学       90王五     语文       81王五     数学       100王五     英语       90 A: select distinct name from table  where  name not in (select distin

SQL面试题目

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′) bwhere a.score>b.scor

一道SQL面试例题 if...else 与聚集函数

晚上回来,同学说面试遇到了一个SQL面试题目,自己做了一下,总结总结. 题目如下: 下面是产品数据表(产品id,颜色col,数量num),其中每种产品有1~2种颜色. 求每种产品各颜色的数量差值(对于只有一种颜色的保留产品总数) 解法如下: 1.先求出每种产品各颜色的数量 这个不难,直接使用group by 就可以啦.SQL语句如下: 1 select id,col,sum(num) total from chanpin group by id,col 结果: 2.求每种产品各颜色的数量差值(对

走向面试之经典的数据库笔试题:一、你必知必会的SQL语句练习-Part 2

本文是在Cat Qi的参考原帖的基础之上经本人一题一题练习后编辑而成,非原创,仅润色而已.另外,本文所列题目的解法并非只有一种,本文只是给出比较普通的一种而已,也希望各位园友能够自由发挥. 一.书到用时方恨少:"图书-读者-借阅"类题目 1.1 本题目的表结构 本题用到下面三个关系表: CARDS 借书卡. CNO 卡号,NAME 姓名,CLASS 班级 BOOKS 图书. BNO 书号,BNAME 书名,AUTHOR 作者,PRICE 单价,QUANTITY 库存册数 BORROW

最新天猫3轮面试题目:虚拟机+并发锁+Sql防注入+Zookeeper

天猫一面 自我介绍.项目介绍 Spring拦截器.实现了哪些方法?底层原理 AOP如何配置,底层原理.2种动态代理,aop注解实现,xml定义切面 Bean的作用域,单例模式是否线程安全?恶汉模式是否线程安全?bean如何结束生命周期? Spring事务种类,如何回滚,A方法调用B方法,在B方法中出现异常,会回滚吗?(动态代理) 快速排序时间复杂度 JVM内存结构详细分配,各比例是多少 讲讲dubbo,数据库主从复制,2个节点读写分离,如何在读节点马上读到主节点写入的值 springboot和s

数据库面试系列之六:会写基本的sql语句

面试让写的sql语句涉及到order by ,group by, having ,like ,limit  等 order by 排序 asc生序,desc降序 group by 分组,having用于分组筛选 like用于模糊匹配查询 limit控制返回的结果条数,以及从第几条返回 select sid,sum(score) as 总分数 where sid>1004 group by sid having 总分数>60 order by 总分数 desc; select * from st

SQL 面试题目及答案

SQL 面试题目及答案 By Lee - Last updated: 星期五, 五月 31, 2013 Leave a Comment 学生成绩表(stuscore):姓名:name     课程:subject     分数:score     学号:stuid张三     数学     89     1张三     语文     80     1张三     英语     70     1李四     数学     90     2李四     语文     70     2李四     英

腾讯面试:一条SQL语句执行得很慢的原因有哪些?---不看后悔系列

说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之间扯不出来.所以今天,我带大家来详细扯一下有哪些原因,相信你看完之后一定会有所收获,不然你打我. 一.开始装逼:分类讨论 一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们