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数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的 表空间分类: 永久表空间 用来存放表的数据, 视图 ...
随机推荐
- thinkphp杂项功能(主干)
thinkphp杂项功能(主干) 一.总结 1.杂项功能:杂项里面我需要有点印象的是五个:缓存,多语言,图像处理,文件处理,单元测试 二.thinkphp杂项功能(主干) thinkphp扩展杂项功能 ...
- 如何在实际项目中使用Promise(入门级)
你们有没有遇到过这样的情况,ES6看过了,Promise的文字概念都懂,但是我要怎么在项目中去写一个Promise呢? 那天我就是带着这样的疑问去网上搜了下.最后成功地在项目中应用了Promise,只 ...
- BZOJ5137: [Usaco2017 Dec]Standing Out from the Herd(广义后缀自动机,Parent树)
Description Just like humans, cows often appreciate feeling they are unique in some way. Since Farme ...
- Boost 解析xml——插入Item
XML格式为 <?xml version="1.0" encoding="utf-8"?> <Config> <Item name ...
- Direct2D开发:向 MFC 项目添加 Direct2D 对象
0X01 创建 MFC 应用程序: 在“文件”菜单上指向“新建”,然后单击“项目”. 在“新建项目”对话框左窗格的“已安装的模板”下,展开“Visual C++”,然后选择“MFC”. 在中间窗格中, ...
- 【习题 7-6 UVA - 12113】Overlapping Squares
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 先预处理出来一个正方形. 然后每次枚举新加的正方形左上角的坐标就可以. 注意覆盖的规则,控制一下就可以. 然后暴力判断是否相同. 暴 ...
- JavaScript学习总结(6)——js弹出框、对话框、提示框、弹窗总结
一.JS的三种最常见的对话框 [javascript] view plaincopy //====================== JS最常用三种弹出对话框 =================== ...
- Apache httpd.conf 配置文件语法验证
Apache 的 httpd.conf文件改动之后,必须重新启动server才干生效. 有时server在提供服务的时候,直接更改配置,重新启动服务.会带来非常大的危急性. 假设能在改动配置之后,先验 ...
- v-for一定要与v-bind:key="id"连用
1. v-for: <div v-for="(item,index) in todolist" v-bind:key="item.id"> < ...
- java方法调用之动态调用多态(重写override)的实现原理——方法表(三)
上两篇篇博文讨论了java的重载(overload)与重写(override).静态分派与动态分派.这篇博文讨论下动态分派的实现方法,即多态override的实现原理. java方法调用之重载.重写的 ...