sql的emp,dept小总结
1、选择部门20中的雇员
select *
from emp
where deptno = 20;2、列出所有办事员的姓名、编号和部门名称
select ename 姓名, empno 编号, deptno 部门名称
from emp
where job = 'CLERK';或者 【了解】
select e.ename 姓名, e.empno 编号, e.deptno 部门编号,(select d.dname from dept d where e.deptno = d.deptno) 部门名称
from emp e
where e.job = 'CLERK';3、找出佣金高于薪金的雇员
select *
from emp
where comm > sal;4、找出佣金高于薪金60%的雇员
select e.*, e.sal, e.sal * 0.6
from emp e
where comm > e.sal * 0.65、找出部门10中所有经理和部门20中的所有办事员的详细资料
部门10中所有经理
部门20中的所有办事员
select *
from emp
where (deptno = 10 and job = 'MANAGER') or(deptno = 20 and job = 'CLERK');6、找出收取佣金的雇员的不同工作
select job
from emp
where comm is not null and comm > 0
group by job;7、找出不收取佣金或收取的佣金低于100的雇员 【佣金是0】
select *
from emp
where comm is null or comm < 100;8、找出各月最后一天受雇的所有雇员
select last_day(sysdate) from dual;
select *
from emp
where hiredate = last_day(hiredate);9、找出早于25年之前受雇的雇员
select *
from emp
where hiredate < add_months(sysdate, -25*12);
或者
select *
from emp
where add_months(hiredate, 25*12) < sysdate;10、显示只有首字母大写的所有雇员的姓名
select ename, substr(ename,1,1)
from emp
where substr(ename,1,1) >= 'A' and substr(ename,1,1) <= 'Z';11、显示正好为6个字符的雇员姓名
select ename
from emp
where length(ename) = 6;12、显示不带有'R'的雇员姓名
select ename
from emp
where ename not like '%R%';13、显示所有雇员的姓名的前三个字符
select substr(ename, 1, 3)
from emp;14、显示所有雇员的姓名,用a替换所有'A'
select ename, replace(ename, 'A', 'a')
from emp;15、显示所有雇员的姓名以及满10年服务年限的日期
select ename, add_months(hiredate, 10 * 12)
from emp;16、显示雇员的详细资料,按姓名排序
select *
from emp
order by ename;17、显示雇员姓名,根据其服务年限,将最老的雇员排在最前面
select *
from emp
order by hiredate;18、显示所有雇员的姓名、工作和薪金,按工作的降序顺序排序,而工作相同时按薪金升序
select ename,job,sal
from emp
order by job desc, sal asc;19、显示所有雇员的姓名和加入公司的年份和月份,按雇员受雇日所在月排序,
将最早年份的项目排在最前面
select e.ename, extract(YEAR from e.hiredate) 年份,extract(MONTH from e.hiredate) 月份
from emp e
order by 年份 asc,月份 asc;20、显示在一个月为30天的情况下所有雇员的日薪金
select e.*, round(nvl(sal, 0) / 30, 2) 日薪金
from emp e;21、找出在(任何年份的)2月受聘的所有雇员
select *
from emp
where extract(MONTH FROM hiredate) = 2;22、对于每个雇员,显示其加入公司的天数
-- 日期相减的结果就是天数
select round(sysdate - hiredate)
from emp;23、显示姓名字段的任何位置,包含 "A" 的所有雇员的姓名
select ename
from emp
where ename like '%A%';24、以年、月和日显示所有雇员的服务年限
selecttrunc(sysdate - hiredate) / 365 年份,trunc(sysdate - hiredate) / 30 月份,trunc(sysdate - hiredate) 天数
from emp;25、查询 emp表的员工编号、姓名、职位、年薪(薪资*13[13薪] +
补贴(300[餐补] + 180[交通补助])*12)。
select empno 编号, ename 姓名, job 职位, sal * 13 +
nvl(comm, 0) * 12 + (300 + 180) * 12 年薪
from emp;26、查询emp表中,基本工资高于1500的雇员的所有信息
select *
from emp
where sal > 150027、查询emp表中,基本工资<不>在 1200~2500之间 的雇员的所有信息
select *
from emp
where sal not between 1200 and 2500;28、查询emp表中,所有时间 hiredate 在1981年雇佣的雇员信息。1981年指:
(1981-01-01~1981-12-31)
select *
from emp
where hiredate between to_date('1981-01-01','yyyy-mm-dd') andto_date('1981-12-31','yyyy-mm-dd');29、查询emp表中,编号是 7499 或是 7844 或是 9999 或是 7566 的雇员信息。
select *
from emp
where empno in (7499, 7844, 9999, 7566);30、查询emp表中,雇员姓名以 S字符结尾的雇员信息
select *
from emp
where ename like '%S';31、查询emp表中,雇员姓名的第二位字符是 A 的雇员信息
select *
from emp
where ename like '_A%';32、查询 emp 表中每个部门的不同工种,要求结果按照部门编号升序
select deptno,job
from emp
group by deptno,job
order by deptno;33、查询emp表中每个部门下不同工种的人数大于等于2记录
select deptno,job,count(1)
from emp
group by deptno,job
having count(1) >= 2;34、查询emp表中薪资在3000以上员工的人数
select count(1)
from emp
where sal >= 3000;35、查询emp表中所有销售员的薪资总和
select sum(sal)
from emp
where job = 'SALESMAN';36、查询出所有销售员全年工资总和以及所有经理的全年工资总和
(工资 = 每个月 薪金13薪 + 佣金 + 300餐补 + 200交通补助)
-- 分组和聚合结合使用
select job,sum(sal * 13 + nvl(comm,0) * 12 + (300 + 200) * 12)
from emp
where job = 'SALESMAN' or job = 'MANAGER'
group by job;37、查询出各个部门下面所有员工的工资总和大于120000的人数, (工资 = 每个月 薪金13薪 + 佣金 + 300餐补 + 200交通补助)
select deptno,sum(sal * 13 + nvl(comm,0) * 12 +
(300 + 200) * 12) 工资总和, count(1)
from emp
group by deptno
having sum(sal * 13 + nvl(comm,0) * 12 + (300 + 200) * 12) > 120000;38、查询出工资在1500元以下,1500元~3000元之间,3000元以上员工的人数
selectsum(case when sal < 1500 then 1 else 0 end),sum(case when sal between 1500 and 3000 then 1 else 0 end),sum(case when sal > 3000 then 1 else 0 end)
from emp;或者selectcount(case when sal < 1500 then 1 else null end),count(case when sal between 1500 and 3000 then 1 else null end),count(case when sal > 3000 then 1 else null end)
from emp;39、查询工资最高的员工信息 DELETE
-- 子查询
select *
from emp
where sal = (select max(sal) from emp);40、查询出各个部门下所有员工的人数,以及平均工资,最高工资,最低工资, 总工资
select deptno,count(1), round(avg(sal),2), max(sal), min(sal), sum(sal)
from emp
group by deptno;41. 统计每个职位下所有员工的平均工资中最高的平均薪资
select job, round(avg(sal))
from emp
group by job;select max(round(avg(sal), 2))
from emp
group by job;42. 统计员工表中职位的个数
select job,count(1)
from emp
group by job;或者select distinct job
from emp
select count(distinct job)
from emp;
sql的emp,dept小总结相关推荐
- sql语句两个练习 emp dept 复杂查询
查询指定列 select sal from emp WHERE ename='SMITH' //转换成小写也行 如何取消重复行 统计共有多少个部门编号 distinct只能消除完全一样的行 ...
- PL/SQL题库三·EMP/DEPT/WORK(8题)
三.题库三(8题) emp 列名 类型 描述 EID VARCHAR2(6) 员工编号 ENAME VARCHAR2(10) 员工姓名 BDATE date 生日 SEX VARCHAR2(1) 性别 ...
- stringbuffer mysql_javascript制作sql转换为stringBuffer的小工具
sql转换为stringBuffer的小工具,dao层拼接sql很麻烦,用这个小工具可以快速拼接,把写好的sql在sql工具中格式化好,然后复制进去就可以了 代码 change SQL var ie ...
- SQL Server编写存储过程小工具(三)
SQL Server编写存储过程小工具 功能:为给定表创建Update存储过程 语法: sp_GenUpdate <Table Name>,<Primary Key>,&l ...
- 实战 SQL:销售数据的小计/合计/总计以及数据透视表
文章目录 小计.合计与总计 多维度交叉统计 自定义统计维度 数据透视表 总结 学习过 SQL 的人都知道,使用聚合函数(AVG.SUM.COUNT.MIN/MAX 等)和分组操作(GROUP BY)可 ...
- oracle scott 关系图,oracle下scott用户的四张表(emp,dept,bonus,salgrade)的建表语句:
scott用户的四张表(emp,dept,bonus,salgrade)的建表语句 emp -- Create table create table EMP ( empno NUMBER(4) not ...
- SQL语句优化经典小技巧
1,对于MyISAM引擎,当导入大批量数据的时候,可以先将他的一些keys禁用掉: alter table table_name disable keys; 再加载数据:loading data; 再 ...
- SQL Server实用操作小技巧集合
包括安装时提示有挂起的操作.收缩数据库.压缩数据库.转移数据库给新用户以已存在用户权限.检查备份集.修复数据库等 (一)挂起操作 在安装Sql或sp补丁的时候系统提示之前有挂起的安装操作,要求重启,这 ...
- sql查询复习笔记-小技巧,大智慧(续一)
3.回答有关"至少"的问题 前言:"至多"的对立面是"至少".通常,采用"至多"问题中表述的技巧变体,就可以解决&quo ...
最新文章
- 什么是标签传播算法?为什么要使用标签传播算法?如何使用?
- rsa php前面,PHP使用非对称加密算法(RSA)
- laravel 模版引擎使用
- 让linux的防活墙也像windows一样简单易用
- 文献记录(part22)--Learning local metrics from pairwise similarity data
- 学习STL map, STL set之数据结构基础
- 解决:idea - maven project 中 jar 报红线
- 技术动态 | eBay开源分布式知识图谱存储Beam,支持类SPARQL查询
- 几个容器网络相关问题的分析和解决总结(续1)
- python相关性分析特征过滤_Python相关性分析
- 美国团购巨头是怎样衰落的
- 启用windows功能NetFx3时出错
- 【论文解读】VDN( Variational Denoising Network )变分去噪网络
- ES报错处理-mapper [xx.xx] of different type, current_type [text], merged_type [keyword]
- 在线生成透明ICO图标神器
- 2021世界量子计算机排名,2021 QS世界大学学科排名如期出炉啦!
- 天津大学计算机专业考研考什么,天津大学计算机专业考研难吗
- javaScript 如何使用js追加字符串呢?
- 【面试记录】基恩士2023招聘
- JQuery绘制北京地铁线路图