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数据库对数据的管理是基于表空间的概念来的, 各种数据的以及存储数据的优化, 实际上也是通过优化表空间来实现的 表空间分类: 永久表空间 用来存放表的数据, 视图 ...
随机推荐
- RelativeLayout-属性大全
// 相对于给定ID控件 <!--将该控件的底部置于给定ID的控件之上--> android:layout_above <!--将该控件的底部置于给定ID的控件之下--> an ...
- int android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null.....
Android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null..空指针问题,费劲心思才找到报空指针的原因: 代码 ...
- MFC中对话框的各种消息触发时间
小结:WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个状态肯定是在调用ShowWindows()显示窗口之前.WM_WM_IN ...
- COGS 163 [USACO Mat07] 牛语
COGS 163 [USACO Mat07] 牛语 输入文件:latin.in 输出文件:latin.out 简单对比 时间限制:1 s 内存限制:128 MB 奶牛们听说猪发明了一种秘密 ...
- 洛谷 P1000 超级玛丽游戏
P1000 超级玛丽游戏 题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 题目描述 超级玛丽是一个非常经典的游戏.请你用字符画的形式输出超级 ...
- android插件式开发资料整理
1.DL : Apk动态载入框架 2.android中的动态载入机制
- hdu-3642--Get The Treasury-线段树求面积并
求空间中叠加3次及3次以上的体积. 由于|z|<=500.所以直接把z轴剥离出来1000层. 然后对于每一层进行线段树求面积并. #include<stdio.h> #include ...
- win10系统64位安装git后右键运行git bash here生成一个mintty.exe.stackdump文件后闪退解决方案
在其他win10电脑上复制了一个null.sys文件,替换C:\Windows\System32\drivers\null.sys,搞定.
- C# 映射
public class Myclass1 { private int m_Count = 100; public string love{get;set;} public int Count { g ...
- python3 pygame 坦克自动移动
让坦克自动跑起来 这里需要一个坦克的图. 放到与脚本同一目录. 好,我们就让这个坦克自动跑. 下面上代码: # !/usr/bin/env python # -*- coding:utf-8 -*- ...