oracle 基础表 mysql版
dept 部门表(deptno 部门编号/dname 部门名称/loc 地点)
----------------------------------------------------------emp表-------------------------------------------------------------
-
DROP TABLE IF EXISTS `emp`;
-
CREATE TABLE `emp` (
-
`EMPNO` int(4) NOT NULL,
-
`ENAME` varchar(10) DEFAULT NULL,
-
`JOB` varchar(9) DEFAULT NULL,
-
`MGR` int(4) DEFAULT NULL,
-
`HIREDATE` date DEFAULT NULL,
-
`SAL` int(7) DEFAULT NULL,
-
`COMM` int(7) DEFAULT NULL,
-
`DEPTNO` int(2) DEFAULT NULL,
-
PRIMARY KEY (`EMPNO`),
-
KEY `FK_DEPTNO` (`DEPTNO`),
-
CONSTRAINT `FK_DEPTNO` FOREIGN KEY (`DEPTNO`) REFERENCES `dept` (`DEPTNO`)
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-
-- ----------------------------
-
-- Records of emp
-
-- ----------------------------
-
INSERT INTO `emp` VALUES ('7369', 'SMITH', 'CLERK', '7902', '1980-12-17', '800', null, '20');
-
INSERT INTO `emp` VALUES ('7499', 'ALLEN', 'SALESMAN', '7698', '1981-02-20', '1600', '300', '30');
-
INSERT INTO `emp` VALUES ('7521', 'WARD', 'SALESMAN', '7698', '1981-02-22', '1250', '500', '30');
-
INSERT INTO `emp` VALUES ('7566', 'JONES', 'MANAGER', '7839', '1981-04-02', '2975', null, '20');
-
INSERT INTO `emp` VALUES ('7654', 'MARTIN', 'SALESMAN', '7698', '1981-09-28', '1250', '1400', '30');
-
INSERT INTO `emp` VALUES ('7698', 'BLAKE', 'MANAGER', '7839', '1981-05-01', '2850', null, '30');
-
INSERT INTO `emp` VALUES ('7782', 'CLARK', 'MANAGER', '7839', '1981-06-09', '2450', null, '10');
-
INSERT INTO `emp` VALUES ('7788', 'SCOTT', 'ANALYST', '7566', '1987-04-19', '3000', null, '20');
-
INSERT INTO `emp` VALUES ('7839', 'KING', 'PRESIDENT', null, '1981-11-17', '5000', null, '10');
-
INSERT INTO `emp` VALUES ('7844', 'TURNER', 'SALESMAN', '7698', '1981-09-08', '1500', '0', '30');
-
INSERT INTO `emp` VALUES ('7876', 'ADAMS', 'CLERK', '7788', '1987-05-23', '1100', null, '20');
-
INSERT INTO `emp` VALUES ('7900', 'JAMES', 'CLERK', '7698', '1981-12-03', '950', null, '30');
-
INSERT INTO `emp` VALUES ('7902', 'FORD', 'ANALYST', '7566', '1981-12-03', '3000', null, '20');
-
INSERT INTO `emp` VALUES ('7934', 'MILLER', 'CLERK', '7782', '1982-01-23', '1300', null, '10');
--------------------------------------------------------dept表-------------------------------------------------
-
DROP TABLE IF EXISTS `dept`;
-
CREATE TABLE `dept` (
-
`DEPTNO` int(2) NOT NULL,
-
`DNAME` varchar(14) DEFAULT NULL,
-
`LOC` varchar(13) DEFAULT NULL,
-
PRIMARY KEY (`DEPTNO`)
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-
-- ----------------------------
-
-- Records of dept
-
-- ----------------------------
-
INSERT INTO `dept` VALUES ('10', 'ACCOUNTING', 'NEW YORK');
-
INSERT INTO `dept` VALUES ('20', 'RESEARCH', 'DALLAS');
-
INSERT INTO `dept` VALUES ('30', 'SALES', 'CHICAGO');
-
INSERT INTO `dept` VALUES ('40', 'OPERATIONS', 'BOSTON');
--------------------------------------------salgrade----------------------------------------
-
DROP TABLE IF EXISTS `salgrade`;
-
CREATE TABLE `salgrade` (
-
`grade` int(11) NOT NULL DEFAULT '0',
-
`losal` int(11) DEFAULT NULL,
-
`hisal` int(11) DEFAULT NULL,
-
PRIMARY KEY (`grade`)
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-
-- ----------------------------
-
-- Records of salgrade
-
-- ----------------------------
-
INSERT INTO `salgrade` VALUES ('1', '700', '1200');
-
INSERT INTO `salgrade` VALUES ('2', '1201', '1400');
-
INSERT INTO `salgrade` VALUES ('3', '1401', '2000');
-
INSERT INTO `salgrade` VALUES ('4', '2001', '3000');
-
INSERT INTO `salgrade` VALUES ('5', '3001', '9999');
---------------------------------------------------------------练习-----------------------------------------------------------
-
SELECT * from emp
-
-
/*1-数据分组的重要函数: max、min、avg、sum、count*/
-
SELECT ename,sal FROM emp WHERE sal= (SELECT max(sal) from emp )
-
-
/*2-查询出工资高于平均工资的员工信息*/
-
SELECT ename,job,sal from emp WHERE SAL>(SELECT avg(sal) from emp)
-
/*查询出每个部门的平均工资和最高工资;*/
-
SELECT avg(sal),max(sal),deptno from emp group by deptno
-
/*查询出每个部门的每种岗位的平均工资和最低工资;*/
-
SELECT avg(sal),min(sal),DEPTNO,job from emp group by deptno,job
-
/*查询出平均工资低于2000的部门号和它的平均工资.*/
-
-
SELECT avg(sal),deptno FROM emp GROUP BY DEPTNO having avg(sal)<2000
-
-
SELECT avg(sal),deptno FROM emp GROUP BY DEPTNO having avg(sal)>2000 ORDER BY avg(sal)
-
/*查询出每个员工的姓名、工资及其工资的级别*/
-
SELECT e.ename,e.sal,s.grade from emp e,salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal
-
-
/*查询出某个员工的上级领导的姓名*/
-
SELECT e1.ename,e2.ename from emp e1,emp e2 where e1.mgr=e2.empno
-
-
/*询出工资比部门编号30的所有员工的工资高的员工的姓名、工资和部门编号*/
-
-
SELECT ename,sal,deptno from emp where sal>all (SELECT sal from emp WHERE deptno=30)
-
-
/*查询出与SMITH的部门和岗位完全相同的所有雇员*/
-
SELECT * FROM emp WHERE (job,deptno)=(SELECT job ,deptno FROM emp WHERE ename='SMITH')
-
/*查询出高于自己部门平均工资的员工的信息*/
-
SELECT e1.ename,e1.sal FROM emp e1,(SELECT deptno,avg(sal) mysal FROM emp GROUP BY deptno) e2 WHERE e1.deptno=e2.deptno AND e1.sal>e2.mysal
-
-
/*谁挣的钱的最多*/
-
select ename, sal from emp where sal = (select max(sal) from emp);
-
-
/*求部门人中那些人的薪水最高*/
-
/*SELECT ename,DEPTNO,max(sal) from emp GROUP BY deptno;*/
-
-
select ename, sal,emp.deptno
-
from emp
-
join (select max(sal) max_sal, deptno from emp group by deptno) t
-
on (emp.sal =t.max_sal and emp.deptno =t.deptno)
-
-
-
SELECT * FROM salgrade
-
/*部门平均薪水的等级*/
-
SELECT t.deptno,s.grade FROM salgrade s,
-
(SELECT deptno,AVG(sal) avg from emp GROUP BY deptno) t
-
WHERE t.avg between s.losal and s.hisal;
-
-
select deptno,avg_sal,grade from
-
(select deptno,avg(sal) avg_sal from emp group by deptno) t
-
join salgrade s on (t.avg_sal between s.losal and s.hisal);
-
-
/*那些人是经理人*/
-
select ename from emp where empno in (select distinct mgr from emp);
-
或
-
select distinct d.ename from emp e ,emp d where e.mgr=d.empno
-
/*不用组函数求最高薪水*/
-
select distinct sal
-
from emp
-
where sal not in
-
(select distinct e1.sal from emp e1 join emp e2 on (e1.sal < e2.sal))
-
/*平均薪水最高的部门编号*/
-
SELECT deptno ,max(avg) FROM
-
(SELECT avg(sal) avg,deptno FROM emp GROUP BY deptno)t
-
-
/*平均薪水最高的部门名称*/
-
SELECT * from dept
-
SELECT d.deptno,d.dname,max(avg) FROM
-
(SELECT avg(sal) avg,deptno FROM emp GROUP BY deptno) t,dept d
-
WHERE t.deptno=d.deptno
-
/*平均薪水的等级最低的部门名称*/
-
-
SELECT t.dname,t.deptno,min(s.grade) grade,t.avg_sal FROM
-
(SELECT avg(sal) avg_sal,e.deptno,d.dname FROM emp e,dept d WHERE e.deptno= d.deptno GROUP BY e.deptno)t
-
join salgrade s on(t.avg_sal between s.losal and s.hisal);
-
-
或
-
-
select dname, t1.deptno,grade,avg_sal from
-
(
-
select deptno, grade, avg_sal from
-
(select deptno, avg(sal) avg_sal from emp group by deptno)t
-
join salgrade s on(t.avg_sal between s.losal and s.hisal)
-
-
)t1
-
join dept on (t1.deptno=dept.deptno)
-
where t1.grade=
-
( select min(grade) from(
-
select deptno, grade, avg_sal from
-
(select deptno, avg(sal) avg_sal from emp group by deptno)t
-
join salgrade s on(t.avg_sal between s.losal and s.hisal)
-
)m
-
);
-
-
/*比普通员工的最高薪水还要高的经理人*/
-
select ename
-
from emp
-
where empno in (select distinct mgr from emp where mgr is not null) and sal >
-
(select max(sal) from emp where empno not in (select distinct mgr from emp where mgr is not null))
oracle 基础表 mysql版的更多相关文章
- Oracle基础 表分区
Oracle基础 表分区 一.表分区 (一)表分区的分类 1.范围分区(range) 2.散列分区(hash) 3.列表分区(list) 4.复合分区:范围-哈希(range-hash).范围-列表( ...
- Oracle基础表空间建立,以及练习
Oracle的表空间创建,可以采用网页的https://127.0.0.1:1158/em来进入oracle的页面进行创建表空间. 利用plsqldev.exe程序在表空间里添加数据: 首先要在use ...
- oracle 基础表的选择
基础表(Driving Table)是指被最先访问的表(通常以全表扫描的方式被访问). 根据优化器的不同, SQL语句中基础表的选择是不一样的. 如果你使用的是CBO (COST BASED OPTI ...
- (3)Oracle基础--表
· 认识表 Oracle中的表都是存储在表空间中,具有以下特点: <1> 数据的基本存储单元 <2> 二维结构 行:又称为‘记录’ 列:又称为‘字段或域’ <3&g ...
- (2)Oracle基础--表空间
· 表空间概述 <1> 理解表空间 ① 表空间与数据库的关系: 表空间是数据库的逻辑存储空间,可以理解为在数据库中开辟的一块空间,用于存放数据库的对象. 一个数据库可以由多个表空间构成.O ...
- Oracle基础—表分区
一:表分区的应用场景 用于管理包含大量数据的表. 二:表分区的优点 1.提高数据的可以性 2.减少管理负担 3.改善语句的性能 三:分区的方式:(区间分区.散列分区.列表分区.组合分区) 1.区间分区 ...
- Oracle 基础表查询
--查询所有用户表的数据 SELECT * FROM ALL_TABLES WHERE OWNER='USER_NAME' --如果是用该用户登录使用以下语句: SELECT * FROM USER_ ...
- Oracle基础了解
数据库: 关系型数据库 select * from 表名 非关系型数据库(做不到复杂查询) 以对象的形式进行存储 {"aaa":"ccc"}---键值对 ora ...
- Oracle 基础1
oracle基础 表空间: Oracle数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的 表空间分类: 永久表空间 用来存放表的数据, 视图 ...
随机推荐
- ubuntu-查看iso文件的md5
直接使用命令md5sum +文件名就可以了.例如 md5sum ~/YLMF_GHOSTWIN7SP1_X86_YN2015.iso 执行结果如下 cdbb7fdc8bbc30e5e0a398f71b ...
- HDU 多校联合 6045
Is Derek lying? Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- 记2018/5/5 qbxt 测试
记2018/5/5 qbxt 测试 竞赛时间: 2018 年 5 月 5 日 13:30-17:00 T1 一.maze(1s,512MB): 简单的迷宫问题:给定一个n*m的迷宫,.表示可以通过,# ...
- 【SSH高速进阶】——struts2简单的实例
近期刚刚入门struts2.这里做一个简单的struts2实例来跟大家一起学习一下. 本例实现最简单的登陆,仅包括两个页面:login.jsp 用来输入username与password:succes ...
- SICP 习题 (2.10)解题总结: 区间除法中除于零的问题
SICP 习题 2.10 要求我们处理区间除法运算中除于零的问题. 题中讲到一个专业程序猿Ben Bitdiddle看了Alyssa的工作后提出了除于零的问题,大家留意一下这个叫Ben的人,后面会不断 ...
- rocketmq事务消息入门介绍
说明 周五的时候发了篇:Rocketmq4.3支持事务啦!!!,趁着周末的时候把相关内容看了下,下面的主要内容就是关于RocketMQ事务相关内容介绍了. 说明: 今天这篇仅仅是入门介绍,并没有涉及到 ...
- 【河南省多校脸萌第六场 B】点兵点将
[链接]点击打开链接 [题意] 在这里写题意 [题解] 先每个单位都不建造bi; 打死一个ai之后,把bi加入到大根堆里面. 然后等到不够打死某个单位的时候; 从大根堆里面取出最大的那个bi;不断取, ...
- Java核心技术 卷Ⅰ 基础知识(3)
第五章 继承 继承已存在的类就是复用这些类的方法和域.反射是指在程序运行期间发现更多的类及其属性的能力. . 反射 . 使用反射编写泛型数组代码 继承设计的技巧
- javascript预解释中的机制
预解释是一种毫无节操的机制(自从学了预解释,从此节操是路人) in:‘num’ in window 判断num是否为window这个对象的一个属性,是的话返回true,不是返回false 1.预解释的 ...
- (转)iptables常用规则:屏蔽IP地址、禁用ping、协议设置、NAT与转发、负载平衡、自定义链
转自:http://lesca.me/archives/iptables-examples.html 本文介绍25个常用的iptables用法.如果你对iptables还不甚了解,可以参考上一篇ipt ...