一、传统的连接查询

1、交叉连接:返回笛卡尔积

  WHERE中限定查询条件,可以预先过滤掉掉不符合条件的记录,返回的只是两个表中剩余记录(符合条件的记录)的笛卡尔积。

2、内连接:参与连接的表地位平等,不分主次。两表均可能有丢弃。

(1)等值连接:表间记录的连接是通过相等的字段值为条件建立起来的。

(2)非等值连接:与等值连接类似。如果表间记录的连接条件使用除“=”以外的其它比较运算符(>,>=,<,<=,!>,!<,<>以及BETWEEN…AND等)比较被连接的字段值。注意“BETWEEN (较小值)AND (较大值)”对应闭区间,

3、外连接:参与连接的表分主次。主表不丢弃,从表可能有丢弃。

(1)左外连接:主表在左,从表一侧(右侧)使用“(+)”。

(2)右外连接:同理。

4、自连接:同一个表上的连接查询,令一个表与其自身连接。

注:SELECT子句中的字段别名可以中间使用AS,可以省略;但表名与表别名之间不允许使用AS。

二、SQL92连接语法

  在SQL92标准中,除支持前述传统的连接语法之外,还定义了一组新的连接语法体系--在FROM子句中指定连接条件(之前是在WHERE子句中),二者功能几乎完全相互覆盖,只是语法格式有所不同、且SQL92中增加了一种全外连接。SQL92连接语法基本格式如下:

  注意:连接条件仍是由被连接表中的字段和比较运算符、逻辑运算符等构成的表达式,使用关键字ON或USING等。

  连接类型可分为交叉连接、内连接、外连接三种,并可再细分(下图):

(1)交叉连接的关键字是CROSS JOIN,返回笛卡尔积。例:

(2)等值连接、非等值连接用关键字:[INNER] JOIN,并且用ON代替WHERE指定连接条件及其他查询限定条件;

  等值连接可以使用USING子句指定用于等值连接的字段(参照字段)。

  自然连接的关键字是NATURAL [INNER] JOIN,基于两个表中的全部同名字段建立等值连接。如果类型不一致会出错。

  注意:USING和NATURAL不允许在参照字段(包括SELECT列表中出现的参照字段)上使用表名或表别名作为前缀。此外,ON子句的等值连接不会去除查询结果集中的重复字段,但USING或NATURAL中则会自动去掉重复字段。例如:

(3)左外连接(右外连接同理):主表在左,关键字是LEFT [OUTER] JOIN,ON代替WHERE指定连接条件;

  相当于前述传统方式中的从表侧加入“(+)”:

  全外连接:关键字是FULL [OUTER] JOIN,ON代替WHERE指定连接条件。

转载于:https://www.cnblogs.com/seven7seven/p/3662437.html

ORACLE复杂查询之连接查询相关推荐

  1. MySQL 多表查询、连接查询(内连接、外连接)

    文章目录 1. 多表查询 2. 连接查询 练习 LeetCode 175. 组合两个表 练习 LeetCode 181. 超过经理收入的员工 练习 LeetCode 1378. 使用唯一标识码替换员工 ...

  2. mysql 连接 分组_MySQL 基础 (四) 分组查询及连接查询

    MySQL 基础 (四) 分组查询及连接查询 MySQL 基础(四) 进阶 5 分组查询 语法: SELECT 分组函数, 列(要求出现在 group by 的后面) FROM 表 [where 筛选 ...

  3. Mysql中嵌套查询和连接查询的区别

    一.嵌套查询 嵌套查询我们以mybatis中的嵌套查询举例: 1.1.创建数据库 CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHA ...

  4. 多表查询(连接查询)

    在使用数据库查询语句时,单表的查询有时候不能满足项目的业务需求,在项目开发过程中,有很多需求都是要涉及到多表的连接查询 最终需要查询的数据来源于不同的表中时,这个时候需要考虑使用连接查询 新建一张员工 ...

  5. db2嵌套查询效率_嵌套查询与连接查询的性能

    嵌套查询与连接查询的性能:连接查询一般较快:子查询很难被优化.(当然和DB优化有关,也可能子查询比连接查询快)其实不能一概而论的~~ 不过,问了下DBA同学,他建议是能用join的,尽量不要用嵌套查询 ...

  6. mysql 嵌套查询性能_MySQL数据库之嵌套查询与连接查询的性能详解

    本文主要向大家介绍了MySQL数据库之嵌套查询与连接查询的性能详解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 嵌套查询与连接查询的性能:连接查询一般较快:子查询很难被优化. ...

  7. 【MySQL】多表联合查询、连接查询、子查询

    文章目录 [1]连接查询 内连接查询 外连接查询 左连接 右连接 [2]联合查询 [3]子查询 带in关键字的子查询 带比较运算符的子查询 带exists的子查询 带any关键字的子查询 带all关键 ...

  8. 子查询 和 连接查询谁快

    子查询 和 连接查询 可以达到同样的效果 即 相同的结果集,但是谁快谁慢?一般连接查询如果后期添加条件 需要改原来SQL,为了不改原来SQL,我一般会用子查询来做,这样意思比较明确且不动原来sql,但 ...

  9. 嵌套查询和连接查询(SQL SERVER 2008)

    一. 实验题目:嵌套查询和连接查询 二 .实验目的:加深对嵌套查询和连接查询的理解,比较两种方法的不同. 题目六: 药品(编号,名称,价格,厂商) 处方(药品编号,数量,医生编号) 医生 (编号,姓名 ...

  10. 笔记:3.4 《数据库系统概论》之数据查询---SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)

    对 3.2 数据查询-SELECT(单表查询.连接查询.嵌套查询.集合查询.多表查询)的转载与学习笔记: 0.前言 本篇文章是对<数据库系统概论>王珊老师主编的数据库查询SELECT部分做 ...

最新文章

  1. Velocity语法大全
  2. Hello Views之Spinner(yaozq翻译,仅供参考)
  3. 【转载】别了,摩托罗拉(十):“战争部落”和“独立王国”
  4. SharePoint专家新闻轮转器WebPart----亲測力推之Web部件
  5. Unity使用TextMeshPro显示字体
  6. 使用jsp实现留言板功能
  7. 如何把Tomcat 9 的默认8080端口变成80端口
  8. 计算机本科生毕业设计题目(三)
  9. N2N V3 安装配置解决方案
  10. 依据前端传递的数字等生成二维码图片
  11. HTTPS中的数字证书是什么?数字签名又是什么?
  12. mysql在mye_数据库映射出现重大问题
  13. GBA程序开发入门3
  14. 计算机word文本段落位置互换,用word怎么使两个段落互换位置
  15. 数据挖掘中常用的数据清洗方法有哪些?
  16. 《世界因你不同:李开复自传》--引言 从心选择
  17. vs2022报错E1696无法打开源文件
  18. VMware 安装GHOST系统
  19. 详细解读Modbus RTU、Modbus ASCII、Modbus TCP的区别
  20. 软件工程:软件过程模型实例

热门文章

  1. python 字符串翻转
  2. 巧妙解决element-ui下拉框选项过多的问题
  3. python接口自动化(二十五)--unittest断言——下(详解)
  4. 《一线架构师实践指南》—— 读后总结
  5. 在 Swift 语言中更好的处理 JSON 数据:SwiftyJSON
  6. 使用自定义表类型(SQL Server 2008)
  7. linux下vi编辑器常用命令
  8. kali linux重启网络服务报错,Web安全学习笔记之在Kali Linux上安装Openvas以及启动失败修复...
  9. This subject is anonymous - it does not have any identifying principals and authorization operations
  10. 运行银联支付系统demo