欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle进阶最终章

程序员文章站 2022-05-29 22:01:52
...

oracle多表查询基础语法……绕,绕,绕,晕,晕,晕

 今天的内容其实就是昨天的plus版内容了,昨天是单表查询而今天就开始复杂一些的多表查询了。语法内容不多但是容易绕圈圈,或者时不时的漏掉一些小细节或者语法分析不到位的地方,多表查询感触最多还是语文要学好啊,断字断句逐层分析语句、语法。其实内心是有点崩溃的啦,今天小错误也是不断了,对中文语句分析不够透彻(说出去怕是不好意思说自己是Chinese了)。
 言归正传,记语法:
 select c.字段1,c.字段2,....,d.字段n...
 from c,d,e
 where c.字段n=d.字段m and c.字段x=e.字段y and 其他单值过滤条件   ------c、d表中相同字段,d、e表中相同字段
 group by
 having
 order by

/*
查询的思路:
1、分析题目涉及那些表;
2、如果数据来自多张表,就要使用多表查询:找到两个表中相同的字段用等于号连接起来,
并放在where字句后面;
3、如果需要对单条记录做过滤,就把过滤条件追加到where字句后面,用and连接起来;
4、如果需要对多组数据做统计,就要用到group by;
5、如果需要对分组之后的数据进行过滤,就要用到having;
6、如果需要对数据进行排序,就要用到order by。
*/
其他的子查询(嵌套查询)其实就是基于基本查询语法上,因某些记录无法直接获取使用需要透过子查询获取后才能调用了。
最后附带一则例题:巩固下多表查询+子查询的用法
例:查找出10号部门中与销售部门中任何职工工种相同的职工的信息。
select e., d.
from emp e, dept d
where e.deptno = d.deptno
and d.deptno = 10
and e.job in (select distinct job
from dept d, emp e
where d.deptno = e.deptno
and dname = ‘SALES’);
—–多表查询方式
*or*
select *
from emp
where deptno = 10
and job IN
(select job
from emp
where deptno = (select deptno from dept where dname = ‘SALES’));
——子查询方式
中文含义弯弯绕,分点断句解题需小心。切记,切记……oracle基础就学习到这了,明天又将开始学习新的内容了。加油!不要被绕晕,不要被绕晕……

另:昨天忘了补充一个语句的用法了—-时间的转换:to_date(’时间字符串’,’时间格式’)