--显示员工的编号,姓名,工资,工资级别,所在部门的名称;(使用emp表)
SELECT * FROM emp;
SELECT * FROM salgrade;
SELECT * FROM dept;
SELECT e.empno, e.ename, e.sal, s.grade, d.dname
FROM emp e, salgrade s, dept d
WHERE e.sal BETWEEN s.losal AND s.hisal
AND e.deptno = d.deptno;
--现要求查询出每个雇员的姓名,工资,部门名称,工资在公司的等级(salgrade),及领导姓名及工资所在公司的等级
SELECT e1.empno,
e1.ename,
e1.sal,
s1.grade 员工工资等级,
d.dname,
e2.ename,
e2.sal 领导工资,
s2.grade 领导工资等级
FROM emp e1, salgrade s1, salgrade s2, dept d, emp e2
WHERE e1.sal BETWEEN s1.losal AND s1.hisal
AND e1.deptno = d.deptno
AND e1.mgr = e2.empno
AND e2.sal BETWEEN s2.losal AND s2.hisal
ORDER BY e1.sal;
--外联接
SELECT d.*, e.* FROM dept d, emp e WHERE d.deptno(+) = e.deptno; -- 右外联接(一)
SELECT d.*, e.* FROM dept d, emp e WHERE d.deptno = e.deptno(+); --左外联接(一)
SELECT d.*, e.* FROM dept d RIGHT JOIN emp e ON d.deptno = e.deptno; -- 右外联接(二)
SELECT d.*, e.* FROM dept d LEFT JOIN emp e ON d.deptno = e.deptno; -- 左外联接(二) --查询员工编号,姓名,部门编号,部门名称(左外连接)
SELECT e.empno, e.ename, e.deptno, d.dname
FROM emp e
LEFT JOIN dept d
ON e.deptno = d.deptno;
SELECT e.empno, e.ename, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno(+);
--查询员工编号,姓名,部门编号,部门名称(右外连接)
SELECT e.empno, e.ename, e.deptno, d.dname
FROM emp e
RIGHT JOIN dept d
ON e.deptno = d.deptno;
SELECT e.empno, e.ename, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno(+) = d.deptno;
--查询30号部门的员工
SELECT * FROM emp;
SELECT * FROM emp e JOIN dept d USING (deptno) WHERE deptno = 30; --查询员工编号,姓名,部门编号,部门名称,职务编号,职务名称并且薪资大于8000 按照薪资降序排列
SELECT e.employee_id,
e.last_name,
d.department_id,
d.department_name,
e.salary,
j.job_id,
j.job_title
FROM employees e
INNER JOIN departments d
ON e.department_id = d.department_id
INNER JOIN jobs j
ON e.job_id = j.job_id
WHERE e.salary > 8000
ORDER BY e.salary DESC;
COMMIT;
--查询所有部门的编号,部门名称,部门经理ID,部门经理姓名,部门所在的城市,国家,地区
SELECT * FROM departments;
SELECT * FROM locations;
SELECT * FROM employees;
SELECT * FROM countries;
SELECT d.department_id 部门编号,
d.department_name 部门名称,
d.manager_id 部门经理id,
e.last_name 部门经理姓名,
l.city 部门所在城市,
c.country_name 部门所在国家,
l.state_province 部门所在地区
FROM departments d
LEFT JOIN employees e
ON d.manager_id = e.manager_id
LEFT JOIN locations l
ON d.location_id = l.location_id
LEFT JOIN countries c
ON l.country_id = c.country_id
ORDER BY d.department_id;
--查询谁的工资比'ABEL’
select * from employees;
SELECT first_name || last_name NAME, salary
FROM employees
WHERE salary >= (SELECT salary FROM employees WHERE last_name = 'Abel')
ORDER BY salary;
----查询工资比7654高,同时与7788从事相同工作的全部雇员信息(emp)
SELECT * FROM emp;
SELECT *
FROM emp
WHERE sal > (SELECT sal FROM emp WHERE empno = 7654)
AND job = (SELECT job FROM emp WHERE empno = 7788);
--部门名称,部门员工数,部门平均工资,部门的最低收入雇员的姓名
SELECT d.dname, e.deptno, tmp.c, tmp.a, tmp.m, e.ename
FROM dept d,
emp e,
(SELECT e.deptno, COUNT(e.deptno) c, AVG(sal) a, MIN(sal) m
FROM emp e GROUP BY e.deptno) tmp
WHERE d.deptno = e.deptno
AND e.sal = tmp.m;
--求出每个部门的最低工资的雇员信息
SELECT *
FROM emp e, (SELECT MIN(sal) m FROM emp GROUP BY deptno) tmp
WHERE e.sal = tmp.m;
SELECT *
FROM emp e
WHERE e.sal in (SELECT MIN(sal) m FROM emp GROUP BY deptno);
----查询工资与10部门中的任意一个人相等的员工信息
select * from emp;
SELECT * FROM emp WHERE sal in (SELECT sal FROM emp WHERE deptno = 10);
SELECT * FROM emp WHERE sal = ANY(SELECT sal FROM emp WHERE deptno = 10);
--查询所有是部门经理的员工(employees)
SELECT * FROM employees;
SELECT *
FROM employees
WHERE employee_id IN (SELECT manager_id FROM employees) ORDER BY employee_id;
SELECT *
FROM employees e1
WHERE EXISTS(SELECT manager_id FROM employees e2 WHERE e1.employee_id = e2.manager_id) ORDER BY employee_id;
----查询所有不是部门经理的员工(employees)
SELECT *
FROM employees
WHERE employee_id <> ALL(SELECT manager_id FROM employees WHERE manager_id IS NOT NULL ) ORDER BY employee_id;
SELECT *
FROM employees
WHERE employee_id NOT IN (SELECT manager_id FROM employees WHERE manager_id IS NOT NULL) ORDER BY employee_id;
SELECT *
FROM employees e1
WHERE NOT EXISTS(SELECT manager_id FROM employees e2 WHERE e1.employee_id = e2.manager_id) ORDER BY employee_id;
--查询所有员工人数不少于3人的部门信息(employees)
SELECT * FROM departments;
SELECT * FROM employees;
SELECT d.*,tmp.c
FROM departments d INNER JOIN
(SELECT department_id,COUNT(employee_id) c FROM employees GROUP BY department_id) tmp
ON tmp.c >= 3 AND d.department_id = tmp.department_id;
----查询姓名,职位,薪资在按照 职位,薪资 去重复之后存在的数据
SELECT ename,job,sal FROM emp WHERE exists(select distinct job,sal from emp);
--查询是本部门入职最早的但不是部门经理的员工
SELECT * FROM employees;
--1.查询本部门入职最早的员工
SELECT MIN(hire_date) FROM employees GROUP BY department_id;
--2.查询不是部门经理的员工
SELECT *
FROM employees e1
WHERE NOT EXISTS(SELECT manager_id FROM employees e2 WHERE e1.employee_id = e2.manager_id) ORDER BY employee_id;
--3.结合1、2给出本部门入职最早的但不是部门经理的员工
SELECT *
FROM employees e1
WHERE NOT EXISTS
(SELECT manager_id
FROM employees e2
WHERE e1.employee_id = e2.manager_id)
AND hire_date IN
(SELECT MIN(hire_date) FROM employees GROUP BY department_id)
ORDER BY employee_id;
--查询所有工资超过本部门平均工资的员工
--1. 查询各个部门的平均工资
SELECT department_id,AVG(salary) avgsa FROM employees GROUP BY department_id;
--2.
SELECT e.*, tmp.avgsa
FROM employees e,
(SELECT department_id, AVG(salary) avgsa
FROM employees
GROUP BY department_id) tmp
WHERE e.department_id = tmp.department_id
AND e.salary > tmp.avgsa; --查询所有换过职务的员工
SELECT e.*,jh.* FROM employees e,job_history jh WHERE e.employee_id = jh.employee_id;
SELECT e.*, jh.*
FROM employees e
INNER JOIN job_history jh
ON e.employee_id = jh.employee_id;

Orcle基本语句(四)的更多相关文章

  1. Orcle 查询语句

    首先,以超级管理员的身份登录oracle       sqlplus sys/bjsxt as sysdba   --然后,解除对scott用户的锁       alter user scott ac ...

  2. Orcle基本语句(三)

    COMMIT; --查询表内所有内容 SELECT * FROM stu_info; --查询部分列,并赋予别名 SELECT stu_id 学生标号,stu_name 学生姓名 FROM stu_i ...

  3. 数据库 数据库SQL语句四

    多表查询 等值连接 --查询员工信息,员工号,姓名,月薪,部门名称 select e.empno,e.ename,d.dname from emp e,dept d where e.deptno=d. ...

  4. Orcle基本语句(六)

    -- Created on 2017/1/5 by ADMINISTRATOR DECLARE -- Local variables here i ; v_name ) := '张晓风'; v_age ...

  5. ORCLE基本语句(二)

    select语句的基本语法: [ORDER BY < COLUMN1, COLUMN2, COLUMN3...> [ASC 或 DESC]]

  6. Orcle常用语句

    在SQLPlus界面的操作语句: 查看\设置每行内显示的字符数:show\set linesize [linesize] 查看\设置一次显示的行数:show\set pagesize [pagesiz ...

  7. Orcle基本语句(一)

    --创建学生信息表,约束放在所有列定义之后 CREATE TABLE stu_info( stu_id INTEGER, stu_name NVARCHAR2() NOT NULL, stu_sex ...

  8. Orcle基本语句(五)

    --分页查询---begin --sqlserver top --mysql limit --oracle rownum(伪列),oracle中伪列(rownum,rowid) --查询工资为前五的信 ...

  9. JavaScript-分支语句与函数

    一.分支语句-if语句 四种if语句: 1.if(判断条件) { 满足条件时需执行的语句 } 2.if(判断条件) { 满足条件时需执行的语句 } else { 不满足条件时需执行的语句 } 3.if ...

随机推荐

  1. jsonP跨域调用

    -------------------------------------jsonP跨域调用------------------------------------- <div class=&q ...

  2. Qt多重继承时的信号与槽

    最近在公司项目中开发串口,因为历史原因串口要包装一下,且包装类需要继承自一个纯C++类. QSerialPort可以使用slot function来获取从串口读到的数据,以及写入串口的bytes个数. ...

  3. asp.net gridview 鼠标悬浮提示信息

    使用场景: gridview绑定数据,某列数据太多,故超过一定字符,隐藏起来,同时鼠标移到指定列显示其明细信息: 知识点: 1,oderListTbl_DataBound事件中,添加,oderList ...

  4. out.print()和response.getWriter().write()区别

    1.print()和write()区别: write():表示的是仅支持输入字符类型数据,字符,字符数组和字符串等, print():表示的是将各种数据类型(包括object)的数据通过默认编码换成b ...

  5. Best Practices for Performance_3.Improving Layout Performance 优化布局

    http://developer.android.com/training/improving-layouts/index.html 1. 优化布局层次 1)  每增加一个View或者布局,都会增加额 ...

  6. sublime text2在windows中以命令行启动

    sublime text2在windows中以命令行启动   把执行文件添加到PATH中即可,如图: 如果你和我一样习惯了mac下的简写subl,那么需要在程序目录中新建一个批处理文件subl.bat ...

  7. 【MySQL】分页优化

    前段时间由于项目的原因,对一个由于分页而造成性能较差的SQL进行优化,现在将优化过程中学习到关于分页优化的知识跟大家简单分享下. 分页不外乎limit,offset,在这两个关键字中,limit其实不 ...

  8. xcode中使用xib添加autolayout中constrain to margins的不同

    在使用xcode7 在storyboard中添加autolayout中发现 如果添加在view 直接添加到viewcontroller的view 上 constrain to margins    只 ...

  9. Android学习笔记(十二)

    Fragment是一种可以嵌入在活动当中的UI片段,它能让程序更加合理和充分地利用大屏幕的空间. 碎片的简单用法:新建一个FragmentTest项目,然后新建一个左侧碎片布局left_fragmen ...

  10. 如何消除移动端a标签点击时的蓝色底色以及a标签link、visited、hover、active的顺序

    1.消除a标签移动端点击时的蓝色底色 -webkit-tap-highlight-color:transparent 2.link.visited.hover.active的顺序 a:link{tex ...