使用Emp表和Dept表完成下列练习

Emp员工表

empno

ename

job

Mgr

Hiredate

Sal

Comm

Deptno

员工号

员工姓名

工作

上级编号

受雇日期

薪金

佣金

部门编号

Dept表

Deptno

Dname

Loc

部门编号

部门名称

地点

1.列出至少有一个员工的所有部门。

2.列出薪金比“SMITH”多的所有员工。

3.列出所有员工的姓名及其直接上级的姓名。

4.列出受雇日期早于其直接上级的所有员工。

5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。

6.列出所有“CLERK”(办事员)的姓名及其部门名称。

7.列出最低薪金大于1500的各种工作。

8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。

9.列出薪金高于公司平均薪金的所有员工。

10.列出与“SCOTT”从事相同工作的所有员工。

11.列出薪金等于部门30中员工的薪金的所有员工的姓名和薪金。

12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

13.列出在每个部门工作的员工数量、平均工资和平均服务期限。

14.列出所有员工的姓名、部门名称和工资。

15.列出从事同一种工作但属于不同部门的员工的一种组合。

16.列出所有部门的详细信息和部门人数。

17.列出各种工作的最低工资。

18.列出各个部门的MANAGER(经理)的最低薪金。

19.列出所有员工的年工资,按年薪从低到高排序。

 1.
select distinct dname
from dept
where deptno in
          (select distinct deptno
           from emp);
--要查部门编号如果存在于emp 表中,说明这个部门有员工。
2.
select ename,job,mgr,hiredate,sal
from emp
where sal>
        (select sal
         from emp
         where ename='SMITH');
3.
select e.ename, e.mgr , w.ename
from emp e, emp w
where e.mgr=w.empno;
4.
select e.ename, e.mgr , e.hiredate,w.ename,w.hiredate
from emp e, emp w
where e.mgr=w.empno
and e.hiredate< w.hiredate;
5.
select e.ename,e.hiredate, d.dname,d.deptno
from emp e, dept d
where e.deptno (+)=d.deptno;
--本例子使用的是外连接, 也可以用右连接。
select e.ename,e.hiredate, d.dname,d.deptno
from emp e right join dept d
on e.deptno=d.deptno;
6.
select e.ename,e.hiredate,e.job, d.dname,d.deptno
from emp e, dept d
where e.deptno =d.deptno
and e.job=upper('clerk');
7.
select job, min(sal)
from emp
group by job
having min(sal)>1500;
8.
select e.ename,d.dname
from emp e,dept d
where e.deptno=d.deptno
and d.dname=upper('sales');
--或者:
select ename
from emp
where deptno =
      (select deptno
       from dept
       where dname=upper('SALES'));
9.
select ename, job, sal
from emp
where sal>
        (select avg(sal)
         from emp );
10.
select ename, job
from emp
where job =
       (select job
        from emp
        where ename=upper('scott'));
11.
select ename, sal,job
from emp
where sal in
       (select sal
        from emp
        where deptno=30);
12.
select ename, sal,job
from emp
where sal >all
       (select sal
        from emp
        where deptno=30);
--或者
select ename ,sal
from emp
where sal>
       (select max(sal)
        from emp
        where deptno=30);
13.
select d.deptno,d.dname, count(e.ename), avg(e.sal), avg(months_between(sysdate,e.hiredate))
from emp e, dept d
where e.deptno(+)= d.deptno
group by d.deptno,dname;
--或者下面的方法,这种方法更好理解,把需要汇总的生成一个视图e。
select e.*,d.dname ,
from (select deptno, count(ename) ,avg(sal),avg(months_between(sysdate,hiredate))
      from emp
      group by deptno) e, dept d
where e.deptno =d.deptno;
14.
select d.dname, e.ename, sal+nvl(comm,0)
from emp e, dept d
where d.deptno=e.deptno;
15.
select e.ename,e.job, e.deptno ,d.job, d.deptno
from emp e, emp d
where e.job=d.job and e.deptno<>d.deptno;
16.
select count(e.ename),d.dname
from emp e, dept d
where e.deptno(+)= d.deptno
group by e.deptno,d.dname;
--或者写成
select d.deptno,e.*,d.dname
from (select deptno,count(ename)
     from emp
     group by deptno) e,dept d
where e.deptno(+)= d.deptno;
17.
select job,min(sal+nvl(comm,0))from emp group by job;
18.
select deptno,min(sal) from emp where job=upper('manager')
group by deptno ;
19.
select ename , (sal+nvl(comm,0))*12   yearsal
from emp
order by yearsal ;

基本SQL查询语句的更多相关文章

  1. sql查询语句如何解析成分页查询?

    我们公司主要mysql存储数据,因此也封装了比较好用mysql通用方法,然后,我们做大量接口,在处理分页查询接口,没有很好分查询方法.sql查询 语句如何解析成“分页查询”和“总统计”两条语句.可能, ...

  2. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

  3. SQL查询语句去除重复行

    1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录 ...

  4. WordPress 常用数据库SQL查询语句大全

    在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...

  5. (转)经典SQL查询语句大全

    (转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

  6. 转: 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  7. 经典SQL查询语句大全

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  8. oracle中sql查询语句的执行顺序

    查询语句的处理过程主要包含3个阶段:编译.执行.提取数据(sql查询语句的处理主要是由用户进程和服务器进程完成的,其他进程辅助配合) 一.编译parse 在进行编译时服务器进程会将sql语句的正文放入 ...

  9. SQL查询语句分类

    SQL查询语句有多种,下面总结下.首先先建三张表用于后面的实验 -- 学生表,记录学生信息 CREATE TABLE student( sno ), sname ), ssex ENUM('男','女 ...

  10. 浅谈SQL优化入门:1、SQL查询语句的执行顺序

    1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_ ...

随机推荐

  1. 前端面试题常考&必考之--盒子模型和box-sizing(项目中经常使用)

    主要考察width的值,包括padding\border\content等属性??? box-sizing属性是css3特有的哦*** 1>当box-sizing:content-box;时,跟 ...

  2. react native之使用 Fetch进行网络数据请求

    这是一个单独的页面,可以从其他地方跳转过来. 输入语言关键字,从github检索相关数据 import React, {Component} from 'react'; import { StyleS ...

  3. Bugku web 计算器

    计算器 打开网页,想输入正确的计算结果发现只输进去一位数??? 遇事不决先F12看一眼源码,发现flag

  4. POJ 1432 Decoding Morse Sequences (DP)

    Decoding Morse Sequences 题目链接: http://acm.hust.edu.cn/vjudge/contest/129783#problem/D Description Be ...

  5. uva live 7639 Extreme XOR Sum (暴力+二项式)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  6. flex 强制垃圾回收

    java和flash的垃圾回收都是一个比较热门的话题,今天我也用一个例子来测试下flash的强制垃圾回收.主要用到的而一个类是LocalConnection. 在Flash player的debug版 ...

  7. Linux_LDAP+NFS+autofs

    目录 目录 前言 Ldap LDAPNFSautofs ServerPost 前言 LDAP+NFS+Autofs也是一种网络用户集中管理解决方案,相对于NIS+NFS+Autofs而言,有着更可靠的 ...

  8. 测开之路八十六:python操作sqlite

    创建sqlite数据库,并创建表和数据 python自带sqlite3库可以创建数据库文件 导入库:import sqlite3 创建游标,指定数据库名字:con = sqlite3.connect( ...

  9. 腾讯重磅开源分布式NoSQL存储系统DCache

    当你在电商平台秒杀商品或者在社交网络刷热门话题的时候,可以很明显感受到当前网络数据流量的恐怖,几十万商品刚开抢,一秒都不到就售罄:哪个大明星出轨的消息一出现,瞬间阅读与转发次数可以达到上亿.作为终端用 ...

  10. 【python+selenium自动化】图像识别技术在UI自动化测试中的实际运用

    引言: 目前在图像识别方面的自动化测试框架有很多,其中比较有名的是airtest,主要做手机端的游戏自动化测试(http://airtest.netease.com/) 因为没有实际把airtest运 ...