Oracle基本查询语法
本文含:多表查询/子查询/集合运算
1.多表查询
主要就是连接条件: nge表至少有n-1个连接条件
1.1连接类型: 1.
等值连接
2.
不等值连接
3
. 外连接
4.
自连接
举例: 等值连接 :查询员工信息:员工号 姓名 月薪 部门名称
select e.empno,e.ename,e.sal,d.dname from emp e,dept d where e.deptno=d.deptno;
不等值连接: 查询员工信息:员工号 姓名 月薪 工资级别
select e.empno,e.ename,e.sal,s.grade from emp e,salgrade s
where
e.sal between s.losal and s.hisal;
3.外连接:
左外连接:当where e.deptno=d.deptno不成立的时候,等号左边的表任然包含在最后的结果中
写法:where e.deptno=d.deptno(+)
右外连接:当where e.deptno=d.deptno不成立的时候,等号右边的表任然包含在最后的结果中
写法:where e.deptno(+)=d.deptno
举例:按部门统计员工人数:部门号 部门名称 人数
希望:对于某些不成立的记录(40号部门没有员工,条件不成立),任然希望包含在最后的结果中
1.select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数 from emp e,dept d
where e.deptno(+)=d.deptno group by d.deptno,d.dname;
4.自连接
通过表的别名,将同一张表视为多张表 ,
自连接不适合操作大表, 本质上是多表查询, 查询产生的
笛卡尔基中符合条件的 ,
有性能问题
举例: //查询员工信息: 员工姓名和其老板姓名