MySQL-34道作业题(2)

9、取得薪水最高的前五名员工

select sal,ename
from emp
order by sal desc limit 5;

10、取得薪水最高的第六名道第十名员工的姓名

select ename,sal
from emp order by sal desc limit 5,5;

11、取得最后入职的五名员工(hiredate入职日期)
select ename ,hiredate
from emp
order by hiredate desc limit 5;

12 、取得每个薪水等级有多少员工

第一步:找出每个员工的薪水等级
select e.ename,e.sal,s.grade
from emp e join salgrade s on e.sal between s.losal and s.hisal;
第二部:在以上的结果的基础上按grade分组,计数
select s.grade ,count(*)
from emp e
join salgrade s
on e.sal between s.losal and s.hisal
group by grade

13、面试题
有三张表S(学生表),C(课程表),SC表(学生选课表)
S(SNO,SNAME)代表(学号,姓名)
C(CNO,CNAME,CTEACHER)代表(课号,课名,教师)
SC(SNO,CNO,SCGRADE)代表(学号,课号,成绩)
问题:

  • 1、找出没选过“黎明”老师的所有学生姓名。
    第一步:找出黎明老师所授课的课程编号
    select cno from c where cteacher='黎明'
    第二部:通过‘学生选课表’查询 . cno= 上面结果 的sno,这些cno都是选择黎明老师课程学生的学号
    select sno from sc where cno=(select cno from c where cteacher='黎明 ’)‘
    第三部:在学生表中查询sno not in 上面的结果
    select sname from s where sno not in (select sno from sc where cno=(select cno from c where cteacher='黎明 ’);

  • 2、列出2们以上(含2们)不及格学生姓名及平均成绩
    第一步:列出两门以上不及格的学生姓名
    select sc.sno s.name
    from sc
    join s
    on sc.sno=s.sno
    where sc.scgrade<60
    group by s.sname,sc.sno
    having count()>=2;(表T1)
    第二步:找出每个学生的平均成绩(按序;学号分组求平均值)
    select sno,avg(scgrade) as avgscore from sc group by sno;(表T)
    第三步:第一步和第二步联合
    select t1.sname,t2,avgscore
    from (select sc.sno,s.sname
    from sc join s
    on sc.sno=s.sno
    where sc.scgrade<60
    group by
    sc.sno,s.name
    having count(
    )>=2) t1
    join (select sc.sno,avg(sc.scgrade)as avgscore from sc group by sc.sno) t2
    on t1.sno=t2.sno;`

  • 3、即学过1号课程又学过2号课程所有学生的姓名
    第一步:找出学过1号课程的学生
    select sno from sc where cno=1;
    第二步:找出学过2号课程的学生
    select sno from sc where cno=2;
    第三步:第一步联合第二步
    select s.sname from sc join s on sc.sno=s.sno where cno=1 and sno in(select sno from sc where cno=2);

14、列出所有员工及领导的姓名
emp a<员工表>
emp b<领导表>
select a.name empname ,b.name leadername
from emp a
left join emp b
on a.mgr=b.empno

15、列出受雇日期早于其直接上级的所有员工的编号,姓名,本门名称
emp a<员工表>
emp b<领导表>
select
a.empno '员工编号‘ ,a.ename '员工姓名‘,a.hiredate '员工入职日期‘ , b.empno '领导编号' ,b.ename '领导姓名',b.hiredate '领导入职日期',d.dname
from emp a
join emp b
on a.mgr =b.empno
join dept d
on a.deptno=d.deptno
where a.hiredate<b.hiredate

16、列出部门名称和这些部门的员工信息,同时列出哪些没有员工的部门 emp e<员工表> dept d<部门表>
select e.*,d.dname
from emp e
right join dept d
on e.deptno=d.deptno;

17 、列出至少有5个员工的部门【部门详细信息】 ;emp e<员工表> dept d<部门表>
select d.deptno,d.dname,d.loc ,count(e.ename)
from emp e
join dept b
on e.deptno=d.depgno
group by
d.deptno,d.dname,d.loc
having count(e.ename)>=5;
18、列出薪金比“smith”多的所有员工信息
select *from emp
where sao>(select sal from emp where ename='smith');

19、列出所有办事员(CLERK)的姓名及其部门名称,部门的人数
第一步:select e.ename,d.dname from dept d join emp e on e.deptno=d.deptno where e.job='CLERK'

第二步:select deptno ,count() as totalEmp
from emp e group by deptno
第三步:
select
e.ename ,d.dname,t.totalEmp
from
dept d
join
emp e
on
e.deptno=d.deptno
join
(select deptno ,count(
) as totalEmp
from emp e group by deptno) t
on d.deptno=e.deptno
where
e.job="CLERK'

20、列出最低薪金大于1500的各种工作及从事此工作的全部雇员人数。
select min(sal),count(job),job
from emp
where min(sal)>1500

21、列出在部门“SALES”<销售部>工作的员工姓名,假定不知道销售部的部门编号
select ename from emp where deptno=(select deptno from dept where dname="SALES");
列出薪金高于公司平均薪金的所有员工,所在部门,上级领导,雇员的工资等级
emp a <员工表>
emp b <领导表>
emp d<部门表>
salgrade s <工资等级表>
select
a.enam empname ,d.dname.b,ename,leadername,s.grade
from
emp a
join
dept d
on
a.deptno=d.deptno
join
emp b
on a.mgr = b.empno
join
salgrade s
on
a.sal between s.losal and s.hisal
where
a.sal >(select avg(sal) from emp);

23、 列出与“SCOTT”从事相同工作的所有员工及部门名称
select
e.ename, e.job,d.dname
from
emp e
join dept d
on . e.deptno=d.deptno
where e.job=(select job from emp where ename='SCOTT");

24、列出薪金等于部门30中员工的薪金的其他员工的姓名和薪金
selet distinct sal from emp where deptno=30;
select ename ,sal from emp where sal in(select distinct sal from emp where deptno=30)and deptno<>30;

25、列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金,部门名称;
select max(sal) from emp where deptno=30;
select e.ename,e.sal,d.dname
from emp e
join dept d
on e.deptno =d.deptno
where e.sal>(select max(sal) from emp where deptno=30);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,874评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,102评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,676评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,911评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,937评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,935评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,860评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,660评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,113评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,363评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,506评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,238评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,861评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,486评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,674评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,513评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,426评论 2 352

推荐阅读更多精彩内容

  • mysql数据库中 :database : 文件夹table : 数据表(数据文件) 进入mysqlmysql -...
    赋闲阅读 561评论 0 0
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 1,712评论 0 2
  • 5.多表查询 多表查询 目的:从多张表获取数据 前提:进行连接的多张表中有共同的列 等连接 通过两个表具有相同意义...
    乔震阅读 1,225评论 0 0
  • 1. select * from emp; 2. select empno, ename, job from em...
    海纳百川_4d26阅读 1,903评论 0 4
  • 查询是数据的一个重要操作。用户发送查询请求,经编译软件变异成二进制文件供服务器查询,后返回查询结果集给用户,查询会...
    产品小正阅读 1,384评论 0 2