ORACLE SQL 多表查询

开发工具与关键技术:Oracle sql*plus  PLSQL Developer SQL
撰写时间:2019年05月08日

说明:顾名思义,多表就是多个表连接起来进行查询,但是连表的有一个是固定的条件,就是要有相同的列,相同的列都是会有相同的类型以及相同的数据(主键表与外键表的关系)
个人理解词义:SELECT查询,FORM来着 ,WHERE筛选条件
格式:SELECT 表名1.列名 ,表名2.列名 FORM 表名1,表名2 where 表名1.表列名 = 表名2.表列名
格式2:SELECT x.列名 ,y.列名,y.列名 FORM 表名1 空格 简称x,表名2 空格 简称y where x.表列名 = y.表列名
说明一下格式2,其中的x与y是为了简写太长的表名,所以可以在form后面的表名加上简称,必须是先有了form后面表的简称后其他地方才能使用
注意:在多表查询中如果没有筛选条件(或者无效的筛选条件),输出的结果就会产生笛卡尔积
简单理解笛卡尔积:将A的每一条数据乘以B的每一条数据(AB=总条数)

看图理解就是3
7
笛卡尔积例子

select t.tname,degree from teacher t,course c


解释:通俗点说,就是将跟他没关系的事都要扯上关系,就是将另外的表没关连的数据都连上一遍。

select * from teacher t,course c
where t.tno =c.tno


加上筛选条件后,就是将两个表的关系连上后,就不会相互乱来了。
Oracle有以下几种连接
等值连接:
说明:等值连接就是使用两表之间相同的字段进行连接

例子:查询department_id 相等的数据

SELECT   employees.last_name,employees.department_id, departments.department_id
FROM   employees, departments
WHERE  employees.department_id = departments.department_id;


PS:两个字段都是来之不同的表

非等值连接
说明:值不想要相等,查询范围值
例子:EMPLOYEES表中的列工资应在JOB_GRADES表中的最高工资与最低工资之间(用到了重命名)

SELECT e.last_name, e.salary, j.grade_level
FROM   employees e, job_grades j
WHERE  e.salary  BETWEEN j.lowest_sal AND j.highest_sal;

外连接(包括左连接与右连接)标志:(+)
作用:理解外连接中的左右连接:左右连接是在where条件中使用的。就是查询一个表中的详细数据据,而连接的另外一个表的数据是配合作用(个人表达);左右连接的作用都是一样的,就是放的位置不一样而已,其实把表互换一下就可以了。
例子1(左连接):列出每个员工的姓名,工作,部门号,部门名

Select  first_name,job_id,e.department_id,
d.department_name
from employees e,departments d
where e.department_id =d.department_id(+)

例子2(右链接)
Select first_name,job_id,e.department_id,d.department_name
from employees e,departments d
where e.department_id(+) =d.department_id

内连接
说明:查询两表数据,筛选出相同的数据,去掉不相同的数据。可以说是等值连接(这是我自己说的),例子不写了,看等值连接

自连接
这个连接就是自己连接自己,是个人认为最有趣的连接方式,(通常用于查找同一个表的数据,而又没有自己连接起来的一条数据数据)
说明:将一个表命名成为两个名字,然后再连接起来。
例子:查询出last_name 为‘Chen’(名字) 的员工的 manager(经理)的信息

SELECT worker.last_name || ' works for ' || manager.last_name
FROM   employees worker, employees manager
WHERE  worker.manager_id = manager.employee_id ;

ORACLE SQL 多表查询相关推荐

  1. Oracle SQL多表查询

    曾经一段时间我对oracle的多表查询搞的云里雾里,究其原因:oracle自己的语法和SQL国际标准语法混用.此文章仅适合oracle 菜鸟,老鸟直接飞过- 多表连接类型(SQL 1999标准) • ...

  2. [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)

    [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!) [推荐]ORACLE SQL: 经典查询练手第三篇(不懂装懂,永世饭桶!) --通过知识共享树立个人品牌. 本文与大家共同讨论 ...

  3. Oracle EBS 常用表 查询语句

    ORACLE EBS常用表查询语句 1.  OU.库存组织 SELECT hou.organization_id ou_org_id,           --org_id   hou.name ou ...

  4. Oracle中多表查询再按时间倒序

    我在工作中在Oracle中多表查询再按时间倒序时,用order by 表名.datatime desc 总是实现不了. 不过最后问杨鹃最后和我说可以把我们查询的总个sql语句做为一个表来排序: sel ...

  5. [强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)

    [推荐]ORACLE SQL: 经典查询练手第四篇(不懂装懂,永世饭桶!) --通过知识共享树立个人品牌. 本文与大家共同讨论与分享ORACLE SQL的一些常用经典查询,欢迎大家补充,同时你认为有那 ...

  6. Oracle数据库—— 多表查询

    Oracle数据库-- 多表查询 (一)笛卡尔问题 1.笛卡尔积会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 2.为了避免笛卡尔积,可以在WHERE加入有效的连接条件 ( ...

  7. [推荐推荐][提供下载]ORACLE SQL:经典查询练手系列文章收尾(目录篇)

    [推荐推荐][提供下载]ORACLE SQL: 经典查询练手系列文章收尾(目录篇) --通过知识共享树立个人品牌. 通过近一个月的努力,<经典查询练手系列>也快告一段落,但并不代表结束,以 ...

  8. sql多表查询之一:Where 和 On的秘密

    原文 sql多表查询之一:Where 和 On的秘密 对于还在SQL初级阶段的朋友来说,sql多表查询问题是一个比较有趣也容易出错的技术.什么时候会用到sql多表查询呢?是在两张或两张以上表单中通过某 ...

  9. php sql查询两个表语句,sql多表查询语句与方法

    sql多表查询有很多种方法,如有自然连接 INNER JOIN,外边查询LEFT JOIN,交叉查询JOIN,交叉连接JOIN等join on left on 等多的是哦. sql多表查询语句与方法 ...

最新文章

  1. yolov3网络结构笔记
  2. boost:进程管理
  3. R语言使用lm构建线性回归模型、并将目标变量对数化(log10)实战:可视化模型预测输出与实际值对比图、可视化模型的残差、模型预测中系统误差的一个例子 、自定义函数计算R方指标和均方根误差RMSE
  4. 通过tushare获取贵州茅台和中国平安历史交易数据并使用plotly进行可视化分析
  5. IDEA代码格式化快捷键(新)
  6. Flutter开发之路由跳转与传参(七)
  7. 如何用 StreamAPI 处理 BigDecimal 的 add 操作
  8. mysql 改表面_MySQL_解析MySQL数据库性能优化的六大技巧,数据库表表面上存在索引和防 - phpStudy...
  9. shell中的PS命令的含义
  10. 楚留香手游服务器维护,【楚留香手游】4.27日游戏维护公告
  11. SqlServer还原数据库出现“无法在服务器上访问指定的路径或文件”提示的解决办法
  12. Linux多线程编程[精]
  13. 【Codecs系列】AVS1参考代码RM在Windows下编译以及AVS1编解码器的使用方法
  14. hyperterminal使用教程_Win 7 使用 XP的超级终端 hyper terminal
  15. schema自动生成前端代码
  16. MPS柔性生产线加工实训系统QY-JDYT34
  17. 其他总结(三)--window关闭或打开资源管理器
  18. Vue项目实战:订单列表页面实现
  19. Java课程设计——仓库商品管理系统
  20. 日记:2011年6月深圳2周找工作总结

热门文章

  1. 论文学习——基于查询的workload预测(CMU)
  2. 学校办公室主任述职报告
  3. 一键登录服务端原理_一键登录已成大势所趋,Android端操作指南来啦!
  4. 【毕设论文】基于ASP.NET公司网站的设计与实现
  5. JavaScript节点追加与插入
  6. Windows下如何在任务计划程序中添加自动关机任务计划程序?
  7. 众星捧月——ASP.NET之父等力荐的一本书
  8. python串口编程视频_python 串口编程
  9. FANUC机器人SYST-212报警PAUSE.G需要应用DCS参数的解决办法
  10. android 平板 测评,【葡萄测评】真的有优秀体验的安卓平板,华为平板M6开箱