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数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的 表空间分类: 永久表空间 用来存放表的数据, 视图 ...
随机推荐
- Flume的可靠性
Flume的可靠性 当节点出现故障时,日志能够被传送到其他节点上而不会丢失. Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to- end(收到数据agent首先将event写到磁 ...
- mahout历史(二)
mahout历史 Apache Mahout起源于2008年,经过两年的发展,2010年4月ApacheMahout最终成为了Apache的顶级项目.Mahout 项目是由 ApacheLucene( ...
- Atcoder AtCoder Regular Contest 079 E - Decrease (Judge ver.)
E - Decrease (Judge ver.) Time limit : 2sec / Memory limit : 256MB Score : 600 points Problem Statem ...
- windows7下安装Office2010提示需要安装MSXML6.10.1129
平台:Windows 7 问题:刚刚下载的ghost Win 7,安装过程一切顺利,进入系统后把集成的软件全部卸载,清理完垃圾,安装了VC库,在安装Office2010时提示需要安装MSXML6.10 ...
- OSX: 逻辑卷管理系统Core Storage(1)
Mac高大上嘛? Mac由于贵就高大上了?Mac由于没有这个哪个就不高大上了?本文没有结论,仅仅是回归技术本源,是不是高大上还要大家自己评说. 大多数Mac用户可能并不在乎苹果的OS X操作系统缺少一 ...
- 【MySQL集群】——Java程序连接MySQL集群
上篇简介了怎样在Windows环境下建立配置MySQL集群,这里用一个实现注冊功能的小Demo通过jdbc的方式连接到MySQL集群中. 外部程序想要远程连接到mysql集群,还须要做的一个操作就是设 ...
- 如何让Apache不显示服务器信息
如何让Apache不显示服务器信息 Apache的默认配置是会显示服务器信息的,比如访问一个服务器上不存在的页面,Apache会返回"Not Found"的错误,这个错误页面的最下 ...
- ListView-divider 分割线的设置
1.去掉分割线 android:divider="@null" 2.设置分割线颜色跟宽度 android:divider="#19000000" android ...
- 【Educational Codeforces Round 33 A】Chess For Three
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 模拟题.知道哪个人是旁观者就好 [代码] /* 1.Shoud it use long long ? 2.Have you ever ...
- Java Web学习总结(17)——JSP属性范围
所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围. 一.JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种: 当前页:一个属性只能在一个页面中取得 ...