SQL经典面试题(二)
有3个表S,C,SC
S(SNO,SNAME)代表(学号,姓名) //主键:SNO
//多个人,多门课 3张表 ,SC 关系表
C(CNO,CNAME,CTEACHER)代表(课号,课名,教师)//主键:CNO
SC(SNO,CNO,SCGRADE)代表(学号,课号成绩)//主键:SNO+CNO
问题:
1.找出没选过“黎明”老师的所有学生名字。
select sname from s join sc on (s.sno = sc.sno) join c (c.cno = sc.cno) where c.cteacher <> 'liming';
2.列出2门以上(含2门)不及格学生名字及平均成绩。
select sname from swhere sno in (select sno from scwhere scgrade < 60 group by sno having count(*) >= 2);
3.即学过1号课程又学过2号课程所有学生的名字。
select sname from s where sno in (select sno from sc where cno = 1 and sno in (select sno from sc where cno = 2));
对于教学数据库的三个表:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用SQL查询语句完成下列查询操作
(1)统计有学生选修的课程门数
(2)求选修C4课程的女学生的平均年龄
(3)求刘老师所授的课程的每门课程的平均成绩
(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
(5)检索学号比王军同学大,而年龄比他小的学生姓名。
(6)在表SC中检索成绩为空值的学生学号和课程号
(7)求年龄大于女同学平均年龄的男学生的姓名和年龄
(8)求年龄大于所有女同学年龄的男学生的姓我和年龄
对于教学数据库的三个表:
学生表 S(S#,SNAME,AGE,SEX)
选课表 SC(S#,C#,GRADE)
课程表 C(C#,CNAME,TEACHER)
试用SQL查询语句完成下列查询操作
(1)统计有学生选修的课程门数
select count(C#)
from SC
(2)求选修C4课程的女学生的平均年龄
select avg(AGE)
from S, SC
where S.S#=SC.S# and SC.C#='C4' and SEX='女'
(3)求刘老师所授的课程的每门课程的平均成绩
select CNAME, avg(GRADE)
from SC, C
where SC.C#=C.C# and C.TEACHER='刘老师'
group by CNAME
(4)统计每门课程的学生选修人数(超过10人的课程才统计)。要求显示课程号和人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
select C#, count(S#) as count_s
from S, SC
where S.S# = SC.S#
having count(S#)>10
group by C#
order by count_s, C#
(5)检索学号比王军同学大,而年龄比他小的学生姓名。
select SNAME
from S,
(select S# as S_WJ, AGE as AGE_WJ from S where S.NAME='王军') as A
where S# > A.S_WJ and AGE < A.AGE_WJ
(6)在表SC中检索成绩为空值的学生学号和课程号
select S#,C#
from SC
where GRADE is null
(7)求年龄大于女同学平均年龄的男学生的姓名和年龄
select NAME, AGE
from S,
(select avg(AGE) as AGE1 from S where SEX='女') as A
where SEX='男' and AGE > A.AGE1
(8)求年龄大于所有女同学年龄的男学生的姓我和年龄
select NAME, AGE
from S,
(select max(AGE) as AGE1 from S where SEX='女') as A
where SEX='男' and AGE > A.AGE1
转载于:https://www.cnblogs.com/Peacha/archive/2012/06/04/sql%e9%9d%a2%e8%af%95%e9%a2%98%e4%ba%8c.html
SQL经典面试题(二)相关推荐
- SQL经典面试题及答案
转载自:http://blog.csdn.net/hwq1987/article/details/6670300 SQL经典面试题及答案 2007年07月27日 星期五 上午 08:42 1.一道SQ ...
- 【笔试/面试】SQL 经典面试题
基本概念 (1)any/all,构成 where 子句的条件判断,any:表示或(or)的概念,all:则表示与(and)的概念,这两个关键字的出现是为了语句的简化: (2)先分组再做聚合,逻辑上也应 ...
- Hive SQL经典面试题:统计连续登陆的三天及以上的用户
Hive SQL经典面试题 最近发现一道大数据面试经常会问的SQL题目:统计连续登录的三天及以上的用户(或者类似的:连续3个月充值会员用户.连续N天购买商品的用户等),下面就来记录一下解题思路. 要求 ...
- sql经典面试题50题
总结不甚清楚的有:10,19,20,22,24,25,28,41,42 --1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数 --1.1.查询同时 ...
- python sorted函数_Python 经典面试题 二
1.简要描述Python的垃圾回收机制(garbage collection) Python中的垃圾回收是以引用计数为主,标记-清除和分代收集为辅. •引用计数:Python在内存中存储每个对象的引用 ...
- 数据库SQL经典面试题详解
SQL面试题不外乎增删改查,对于这种类型的题目,我的经验是先把每个表的关联关系搞清楚,它们之间是通过哪些字段关联的,可以在纸上画出关联图,再去编写SQL就不会那么头大了. 下面是四张表的关联关系图: ...
- SQL经典面试题--留存率问题
留存率 定义:某一天新增用户在之后的第n天仍然登录的比例,称为第n日留存率 例如:20220101新增100人, 20220102这100人中登录了60人,次日留存率为60% 20220103这100 ...
- 30道SQL经典笔试题及其答案解析
前言 搭配该文章食用更佳:MySQL常用操作指令大全 欢迎在评论区对该文章进行勘误. 一.建表 create table Student(sid varchar(10),sname varchar(1 ...
- oracle sql经典面试题,经典SQL面试题2
题目: 一张名为workersalary的表,要求查询出全部信息,并且salary最高的三个人按升序排列在结果的最开头,其余的人按原有顺序排列.这个sql如何写? 解答: (1)题意理解 假如原先的表 ...
最新文章
- ffmpeg 基本数据结构和对象: AVPacket、AVPicture、AVFrame
- 如何设置putty远程登录linux
- 应用中心最佳实践之——使用应用组完成多集群一键部署
- js List 对象封装【原创】
- ospf hello时间和dead_网络工程师_思科 | OSPF由简到难,配合命令学
- 编译期java_java编译期和运行期
- linux查看分区访问权限,linux查看分区是否开启acl权限
- bower——库管理工具
- NDTTS-II变压器综合试验系统
- 软件:10款免费无广告的看图软件,总有一款适合你
- Qt音视频开发45-视频传输TCP版
- 网页提示https“证书错误:导航已阻止”,无法跳转解决办法
- FreeMarker生成复杂word(包含图片,表格)
- 2 VBA链接mysql数据库步骤和代码示例
- 10和100Mbps以太网
- 20年广西赛题技能要求(服务器)
- 数值分析--matlab迭代求根式
- Dubbo的介绍以及Dubbox的区别
- 《数据库》数据库的备份与恢复
- 编程进阶一:编译器的特殊功能使用及借助编译时完成数据的初始化
热门文章
- php 和jsp,jsp和php哪个好?jsp和php的简单比较
- CCNA-第十四篇-NAT-下+链路聚合(LACP)+DHCP
- 【LeetCode 629】K个逆序对数组
- 【2018icpc宁夏邀请赛现场赛】【Gym - 102222A】Maximum Element In A Stack(动态的栈中查找最大元素)
- 【牛客 - 369C】小A与欧拉路(bfs树的直径)
- 【HDU - 1302】The Snail (模拟,水题)
- 4)机器学习基石笔记 Lecture4:Feasibility of Learning
- 计算机统考测试,计算机统考专业测试题.doc
- java swing 模拟发牌_用java设计一个发牌程序
- python本地编译器_Python学习札记(0)——Python开发环境搭载及推荐几款Python编译器...