`

SQL 语句小练习

SQL 
阅读更多

emp表中还有ename(名字),sal(工资),deptno(部门号); 

选择各个部门里面工资最高的人的姓名,工资,和部门号;代码如下:

select ename,sal,emp.DEPTNO
from emp join (select max(sal) max_sal,deptno
           from emp
      group by deptno) temp
on (emp.SAL = temp.max_sal and emp.DEPTNO = temp.deptno)
order by emp.DEPTNO; 

 

求各个部门工资的平均值属于哪个等级。

select t.deptno, t.avgs, grade
from (select deptno, avg(sal) avgs from emp group by deptno) t join salgrade g
on (t.avgs between g.losal and g.hisal);

 

求各个部门的等级的平均值

select deptno, avg(grade) from
(
 select deptno, grade
 from emp join salgrade
 on(emp.sal between salgrade.losal and salgrade.hisal)
) t
group by deptno;

 

求雇员中那些是经理

select ename
from emp e
where e.EMPNO in (select distinct m.mgr from emp m);

不用组函数,求薪水的最大值

select sal
from emp
where emp.sal not in
(
select distinct e.sal
from emp e join emp m
on e.sal < m.sal
);

 

求各部门工资平均值最大的部门编号

select t.deptno
from (
     select deptno, avg(sal) avgs
  from emp
  group by deptno
  ) t
where t.avgs =(  
    select max(m.avgs)
    from (select deptno, avg(sal) avgs
      from emp
      group by deptno
      ) m
   ); 

 

求部门工资平均值最大的部门名称:

select dname,deptno
from dept
where deptno in(

    select t.deptno
    from (
         select deptno, avg(sal) avgs
      from emp
      group by deptno
      ) t
    where t.avgs in (  
        select max(m.avgs)
        from (select deptno, avg(sal) avgs
          from emp
          group by deptno
          ) m
       )
);

 

求平均工资等级最低的部门名称

select dname
from dept
where dept.DEPTNO in(

select deptno
from(

 select deptno,avgsal, grade
  from(
   select deptno,avg(sal) avgsal
   from emp
   group by deptno
  ) t1 join salgrade g
  on (
     avgsal between g.losal and g.hisal
  )

) t2
where t2.grade=(

 select min(grade)
 from (
 
  select deptno,avgsal, grade
  from(
   select deptno,avg(sal) avgsal
   from emp
   group by deptno
  ) t1 join salgrade g
  on (
     avgsal between g.losal and g.hisal
  )
 
 )

)


);

也可以采用组函数嵌套,但是最多只能嵌套两层。

 

 

求比普通员工的最高工资还高的经理人的名称。

select ename from (
    select * from emp where emp.EMPNO in (select mgr from emp where mgr is not null)
)
where
sal > (

 select max(sal)
 from emp e1
 where e1.EMPNO not in (
    select e2.MGR from emp e2 where e2.MGR is not null
 )

);

 

 

select ename from emp
where
sal > (

 select max(sal)
 from emp e1
 where e1.EMPNO not in (
    select MGR from emp where MGR is not null
 )

)
and empno in(select distinct mgr from emp where mgr is not null );

 

效率比较:

select * from emp where deptno = 10 and ename like '%A%';  语句一

select * from emp where ename like '%A%' and deptno = 10;  语句二

语句一 > 语句二

 

rownum,orcale提供了一个伪字段rownum,但是rownum只可以与小于,小于等于联用,但不可以与大于,等于,大于等于联用。

 

select ename from emp where rownum <=5; (正确)

select ename from emp where rownum =5 ;(错误)

select ename from (select ename,rownum from emp)where rownum =5;(正确)

 

 

求工资最高的前五名员工的工资。

 

select sal from emp where rownum <=5 order by sal desc;(错误)

select sal from (select sal,rownum from emp order by sal desc) where rownum <=5 ;(正确)

 

求工资最高的第六名到第十名。

 

select sal from (select sal,rownum r from emp order by sal desc) where r>=6 and r<=10;(错误)

 

select ename,sal, rownum r from (
    select ename, sal from emp order by sal desc
) r <=10 and r>=6;(错误)

 

select ename,sal from(
 select ename,sal, rownum r from (
     select ename, sal from emp order by sal desc
 )
)where r >=6 and r<= 10;(正确)

分享到:
评论

相关推荐

    最全sql查询语句练习题汇总(面试必备)

    最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习题汇总(面试必备) 最全sql查询语句练习...

    sql语句练习题(带答案版本)

    这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习这是带答案的sql语句练习

    SQL语句练习题及答案

    ### SQL语句强化练习知识点详解 #### 一、简单查询 **知识点1:查询所有记录** - **描述**: 使用 `SELECT * FROM 表名` 可以查询表中的所有记录。 - **示例**: 查询所有学生的信息。 - **SQL语句**: `SELECT * ...

    经典的SQL语句练习

    经典的SQL语句练习

    数据库sql语句练习

    数据库SQL语句练习 本资源旨在通过若干SQL语句练习,帮助读者更好地理解数据库的各项数据操作。下面是相关知识点的详细解释: 1. 关系代数和SQL语言查询 在关系代数和SQL语言中,查询至少选修了一门其直接先行课...

    SQL查询语句的练习

    存储过程是一组预编译的SQL语句,可以封装在一起并多次调用,提高代码复用性和安全性。触发器则在特定的数据库事件发生时自动执行,如INSERT、UPDATE或DELETE操作。 8. **事务管理** SQL支持事务,确保数据的一致...

    很好的sql语句的基本 练习题目

    SQL 语句基本练习题目 本节讲解了 SQL 语句的基本练习题目,包括创建表、插入数据、查询数据等基本操作。通过这些练习题目,读者可以熟悉 SQL 语句的基本语法和应用。 一、创建部门表 创建部门表的 SQL 语句如下...

    MySQL SQL语句练习题及答案

    MySQL SQL语句练习题及答案 本资源提供了 MySQL SQL 语句的练习题及答案,涵盖了创建表、插入数据、删除数据、更新数据、查询数据等多方面的知识点。 一、创建表 在 MySQL 中,创建表使用 CREATE TABLE 语句。...

    经典SQL语句—练习

    以下是对标题“经典SQL语句—练习”和描述中涉及的一些基本知识点的详细说明: 1. **创建数据库**:使用`CREATE DATABASE`语句可以创建一个新的数据库,例如`CREATE DATABASE database-name`,这里的`database-name...

    SQL语句强化练习题

    在SQL语句强化练习中,我们可以通过一系列查询来熟悉和增强对数据库操作的理解。下面将逐一解析题目中给出的问题及示例。 1. 查询选修课程名称为'税收基础'的学员学号和姓名: ```sql SELECT S.S#, SN FROM S JOIN ...

    sql语句强化练习习题及答案

    ### SQL语句强化练习知识点详解 #### 一、简单查询 **知识点1:查询所有学生信息** - **SQL语句**: `SELECT * FROM 学生;` - 这条语句用于查询`学生`表中的所有列和所有行。 **知识点2:查询特定条件下学生信息*...

    SQL语句强化练习工具

    SQL语句强化练习工具 关于 写这小工具的一些说明 1 连接学校机房的SQL 经常卡(好大杯具) 2 有些同学或网吧的电脑 没装 SQL2008 3 每次课堂练习 都得先创个(浪费时间)

    SQL语句练习及答案

    根据给定文件中的标题“SQL语句练习及答案”与描述“一个非常适合在笔试前看的SQL练习题。也可在在平时作为SQL语言练习题来使用”,我们可以看出这份材料主要包含了一系列针对SQL语言的练习题及其解答,适用于考前...

    3-SQL.rar_sql语句练习

    SQL语句练习、学生可以查看自学SQL相关语句的练习

    SQL查询语句练习题目

    关于查询的SQL练习题,上面附加有题目和答案,用得着的朋友可以参考下....

    SQL语句练习题

    SQL 语句练习题 本节课练习题目涵盖了 SQL 语句的各种知识点,旨在考察学生对 SQL 语句的掌握程度。练习题目包括关系运算、定义表操作、查询语句操作、表数据操作、视图操作、授权操作、索引操作、匹配操作和触发器...

    SQL语句练习提高

    【SQL语句练习提高】 在SQL中,查询和操作数据是其核心功能。以下通过给出的练习题目,我们将深入理解SQL的基本句式和用法。 28. 题目要求从`employee`表中抽取部门名称(depart_name),计算平均工资(avg(wage)...

    SQL语句练习大全

    DDL用来创建数据库中的各种对象,包括数据库模式、表、视图、索引、同义词、聚簇等,它的基本语句有:CREATE DATABASE、CREATE TABLE、CREATE VIEW、CREATE INDEX等。 (4)数据控制语言(DCL) DCL用来授予或回收...

    SQL语句典型练习题(5套含数据)

    这套"SQL语句典型练习题(5套含数据)"旨在帮助学习者巩固和提升SQL技能,通过实践操作来理解其基本语法、查询技巧以及高级特性。下面,我们将详细讨论SQL的一些关键知识点。 1. **SQL基本语法**:SQL主要包括...

    全国计算机二级(vf)sql语句练习

    全国计算机二级(vf)sql语句练习 本资源提供了多种SQL语句练习题,涵盖了基本的数据查询、数据归纳、数据排序、数据筛选等操作。每个练习题都提供了明确的需求和相应的解决方案,帮助学生更好地掌握SQL语句的使用...

Global site tag (gtag.js) - Google Analytics