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数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的 表空间分类: 永久表空间 用来存放表的数据, 视图 ...
随机推荐
- 使用网络TCP搭建一个简单文件下载器
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶项目介绍 二丶服务器Server 三丶测试TCP server服务器 四丶客户端Client 五丶测试客户端向服务器下载 ...
- C#与C++ DLL的交互
C#与C++交互,总体来说可以有两种方法: 1.利用C++/CLI作为代理中间层 2.利用PInvoke实现直接调用 第一种方法:实现起来比较简单直观,并且可以实现C#调用C++所写的类,但是问题 ...
- 关于程序中delay函数带来的繁琐问题
导致“滴滴”声音不准确的原因是因为,串口屏幕发送信息的时候会有delay() 的延迟. 得到的教训就是,无论在什么地方,最好都不要加delay的延迟.否则含有delay的子 函数加入到其他模块中,就会 ...
- Java Web学习总结(5)——HttpServletResponse对象详解
一.HttpServletResponse常见应用--生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类, 生成随机图片范例: package gacl.r ...
- C Tricks(十九)—— 求以任意数为底的对数
本文仅求对数的整数部分: int log(int n, int base){ int i = 1, cnt = 0; while (i*base < n){ i *= base; ++cnt; ...
- socket长连接的维持
长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的.如果,长时间未发送维持连接包,服务端程序将断开连接. 客户端:通过持有Client对象,可以随时(使用sendObject方法)发 ...
- python3怎样画二维点图
引用自:http://www.cnblogs.com/super-zhang-828/p/4792206.html import matplotlib.pyplot as pltplt.plot([1 ...
- 11.5 Android显示系统框架_Vsync机制_黄油计划_三个方法改进显示系统
5. Vsync机制5.1 黄油计划_三个方法改进显示系统vsync, triple buffering, vsync虚拟化 参考文档:林学森 <深入理解Android内核设计思想>第2版 ...
- 11.3 Android显示系统框架_最简单的surface测试程序
APP有一个surface(界面),其有多个buffer用来存放界面数据,这些buffer是向surfaceflinger申请的: 因此我们编写的surface测试程序步骤: (1)获得surface ...
- MySQL和Python交互
与Python交互 python3模块名:pymysql conda install pymysql conda install sqlalchemy python2模块名:MySQLdb impor ...