多表查询练习
来源:互联网 发布:三菱伺服产品选型软件 编辑:程序博客网 时间:2024/06/16 01:48
select last_name,dept_id,name
from s_emp,s_dept
where s_emp.dept_id=s_dept.id;
2)查询员工的姓名和部门所在地区的名称
select se.last_name,sr.name
from s_emp se,s_dept sd,s_region sr
where se.dept_id=sd.id and sd.region_id=sr.id;3)查询部门名称包含Sa的员工姓名薪水
select se.last_name,sd.name,se.salary
from s_emp se,s_dept sd
where se.dept_id=sd.id and sd.name like '%Sa%';4)查询欧洲销售部门的薪水在1000到2000的员工信息
select se.id,se.last_name,sd.name,salary,sr.name
from s_emp se,s_dept sd,s_region sr
where se.dept_id=sd.id and sd.region_id=sr.id and sr.name='Europe' and salary between 1000 and 2000;5)查询部门名称是5位,该部门员工的薪水不等于1500,并按员工的薪水降序排序
select se.id,se.last_name,salary,sd.name
from s_emp se,s_dept sd,s_region sr
where se.dept_id=sd.id and sd.region_id=sr.id and length(sd.name)=5 and salary!=1500
order by salary desc;
6)创建下面这张表并插入数据
create table s_gender(
id number(5) primary key,
minSal number(7),
maxSal number(7),
name varchar2(20));
insert into s_gender values(1,0,1000,'蓝领');
insert into s_gender values(2,1000,1500,'白领');
insert into s_gender values(3,1500,2500,'金领');
commit;
然后查询所有员工月薪涨500后的工资等级?
select e.last_name, e.title, e.salary+500, s.name
from s_emp e,s_gender s
where e.salary+500 between s.minsal and s.maxsal7)查询所有员工所在部门的名称,但是需要把所有部门给查询出来.
select se.last_name,sd.name
from s_emp se
right join s_dept sd on se.dept_id=sd.id;
select se.last_name,sd.name
from s_emp se,s_dept sd
where se.dept_id(+)=sd.id;
8)查询员工所在部门的名称,包括没有部门号的员工
select se.last_name,sd.name
from s_emp se
left join s_dept sd on se.dept_id=sd.id;
select se.last_name,sd.name
from s_emp se,s_dept sd
where se.dept_id=sd.id(+);
9)查询员工所在部门的信息,没有部门号的员工,所有的部门都查询出来
select se.last_name,sd.name
from s_emp se
full join s_dept sd on se.dept_id=sd.id;
10)查询所有员工的经理的last_name,salary,包括没有经理的员工。
select s1.last_name,s2.last_name manager_name,s2.salary
from s_emp s1
left join s_emp s2 on s1.manager_id = s2.id;
11)部门表中前7条记录?
select id,name,region_id
from s_dept
where rownum<8;
12)部门表中第3条到第5条数据?
select id,name,region_id
from
(select rownum no,id,name,region_id
from s_dept
where rownum<6)
where no<6 and no>2;
select id,name,region_id
from s_dept
where rownum<6
minusselect id,name,region_id
from s_dept
where rownum<3;
13)查询员工的全名并取别名name和员工的上级id?
select s1.first_name||s1.last_name name,s2.Manager_id
from s_emp s1,s_emp s2
where s1.manager_id=s2.id;
14)查询部门所在的地区名?
select s1.id,s1.name,s2.name
from s_dept s1,s_region s2
where s1.region_id=s2.id;
15)查询所有员工的平均工资,最高工资最低工资,工资总和,还有有多少个员工?
select avg(salary),min(salary),max(salary),sum(salary),count(*)
from s_emp;
16)查询每个部门的平均工资?对平均工资降序排序.平均工资大于1400.
select dept_id,avg(salary)
from s_emp
group by dept_id
having avg(salary)>=1400
order by avg(salary) desc;
17)查看各个部门的最高工资
select dept_id,max(salary)
from s_emp
group by dept_id;
18)查看各个部门的员工数
select dept_id,count(*)
from s_emp
group by dept_id;
19)查询各个部门各个职称的平均薪水和最大薪水,并且平均薪水大于2000的部门id。
select dept_id,title,avg(salary),max(salary)
from s_emp
group by dept_id,title
having avg(salary)>2000;
20)查询title中不包含vp字符串的每个职位的平均薪水,并对平均薪水进行降序排列,并且每个职位的总薪水大于5000。
select avg(salary),title
from s_emp
where title not like '%vp%'
group by title
having sum(salary)>5000;
21)查看每个区域部门数?
select count(id),region_id
from s_dept
group by region_id
order by region_id;
22)查询南美地区的部门数?
select sr.name,sd.region_id,count(sd.id)
from s_dept sd,s_region sr
where sd.region_id=sr.id and sr.name='South America'
group by sd.region_id,sr.name
order by sd.region_id;
23)查询南美地区工资大于1400的员工的信息?
select se.last_name,se.salary,sr.name
from s_emp se,s_dept sd,s_region sr
where se.dept_id=sd.id and sd.region_id=sr.id and sr.name='South America' and salary>1400;- 多表查询练习
- 多表查询经典练习
- MySQL 多表查询练习
- mysql 单表查询练习
- 【Oracle练习】④第5章 多表查询
- 查询练习
- 查询练习
- 查询练习
- SQL查询--------练习(一对多)
- 数据库Oracle强化练习之多表查询
- SQL练习 demo7_表自连接查询
- 几个表的联合查询练习
- Oracle基础知识3 : 单表查询练习
- Oracle基础知识3 : 单表查询练习
- MySql查询之单表查询 --附练习素材
- mysql 练习1 完成一个由 学生表 选课表 课程表 的一个多表查询
- 学习Hadoop第三十二课(hive练习--多表联合查询)
- SQL查询语句练习
- View的事件分发机制源码分析
- maven创建项目后出现“One or more constraints have not been satisfied、Dynamic Web Module 3.0 requires ”错误解决办法
- Java之CyclicBarrier使用
- 搭建hadoop伪分布式
- 短信接口(阿里大于)
- 多表查询练习
- Java之CountDownLatch使用
- Linux 上交换分区的简单操作
- jdbc批量操作的三种方法
- 物体检测网络概述
- imooc-c++之启航篇
- 三十四
- 走近RDD
- (十八)事件分发-源码分析