Oracle数据库之查询数据表

--查询数据表
--一、简单查询
--1、查询表数据  不多作介绍
select id,empname from emp;
--having
select sum(salary),deptno,job from emp where deptno in ('20','30') group by deptno having sum(salary)>2000;
--2、复杂查询
--等值连接  内连接  简单连接;
select a.deptname,b.c_name from dept a, emp e where a.id=e.deptid;
select a.deptname,b.c_name from dept a inner join emp e on a.id=e.deptid;
--外连接
--右外连接,+在=号左边时,返回的是右边的数据;
select a.deptname,b.c_name from dept a,emp e where a.id(+)=e.deptid;
select a.deptname,b.c_name from dept a left join emp e on a.id = e.deptid;
--左外连接,+在=号右边时,返回的是左边的数据;
select a.deptname,b.c_name from dept a,emp e where a.id = e.deptid(+);
select a.deptname,b.c_name from dept a right join emp e on a.id = e.deptid;
--全连接
select a.deptname,b.c_name from dept a full outer join on emp b where a.id=b.deptid;
--交叉连接
select a.deptname,b.c_name from dept a cross join emp b on a.id=b.deptid;
--自然连接  只适用于两表中相同名字和数据类型的列上,如果列有相同的名字,但数据类型不同,会报错;
select a.deptname,b.c_name from dept a natural emp b;
--3、子查询
--非相关子查询  
--非职员的人员中比所有职员薪资高的人员结果
select * from emp where emp.empno>any(select empno from emp where emp.job='clerk');
--非职员的人员中比所有最高职员薪资高的人员结果
select * from emp where emp.empno>all(select empno from emp where emp.job='clerk');
--表集合操作  
--联合运算  去掉重复的列
select * from emp union select * from emp_history;
--全联合运算  不去掉重复的列
select * from emp union all select * from emp_history;
--相交运算  查询前者表和后者表中的部门编号为20的相同的员工记录 这一块没太明白有啥用
select empno from emp where  deptno=20 intersect select empno from emp_history where deptno=20;
--相减运算 用于去掉重复的结果值,查询在前者表中而不是后者表中的值,与上面使用完全相同;
select empno from emp where  deptno=20 minus select empno from emp_history where deptno=20;
-- 层次化查询   后续需单独巩固
select level,a.id,a.c_mmroomname,a.c_parentid from s_mmroom a
   start with a.c_parentid='00000000000000000000000000000000' connect by prior a.c_parentid=a.id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值