美文网首页
Oracle学习day-28:多表查询

Oracle学习day-28:多表查询

作者: 开源oo柒 | 来源:发表于2019-08-19 21:43 被阅读0次

一、多表连接查询

1.多表连接语法

主要解决目标数据分布在不同的表中(如果目标数据不再一张表,可以通过多表连接查询解决。

(1)多表链接的语法:
Select 表名1.列名1,表名2.列名2,...from 表名1,表名2...where子语句;

(2)多表链接需要注意:

1)先确定需要查询的列分布那些表中,在确定表之间关联关系(主外键关联关系)。

2)通过添加where子句限制查询结果,避免笛卡尔乘积。

(3)笛卡尔积:

笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积,又称直积,表示为X*Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。

2.等值连接

在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

1) 当被连接的多个表中存在同名字段时,须在该字段前加上"表名."前缀。

2) 使用表别名可以简化查询。

3)使用表名(表别名)前缀可提高查询效率。

4)可使用AND 操作符增加查询条件。

3.使用表别名

为表起别名,与列别名相似,在from后的表名空格加上别名;

from 表名  别名,...表名 别名,

4.非等值连接

二、自连接、外连接、内链接

1.自连接

表示表格自身连接自身(代表父子关系:递归);

2.外连接

只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式。

(1)左连接:两个表在连接过程中除返回满足连接条件的行以外,还返回左表中不满足条件的行。

实现方法:

(2)右连接:两个表在连接过程中除返回满足连接条件的行以外,还返回右表中不满足条件的行。

实现方法:

(3)全外连接: 两个表在连接过程中除返回满足连接条件的行以外,还返回两个表中不满足条件的所有行,这种连接称为全外连接。

3.自然链接

Natural join基于两个表中的全部同名列建立连接。

1)从两个表中选出同名列的值均对应相等的所有行;

2)如果两个表中同名列的数据类型不同,则出错;

3)不允许在参照列上使用表名或者别名作为前缀;

4)自然连接的结果不保留重复的属性;

(1)using子句:

如果不希望参照被连接表的所有同名列进行等值连接,自然连接将无法满足要求,可以在连

接时使用USING子句来设置用于等值连接的列(参照列)名。

注意:using子句引用的列在sql任何地方不能使用表名或者别名做前缀。

4.内连接

进行连接的两个表对应的相匹配的字段完全相同的连接。只返回满足连接条件的数据。

5.交叉连接

交叉连接通过cross产生了一个笛卡尔积,其效果等同于在两个表进行连接时未使用where子句限定连接条件;

注意:在笛卡尔积中, 有很多数据是无意义的, 所以需要消除,可以通过where子句来消除。

相关文章

  • Oracle学习day-28:多表查询

    一、多表连接查询 1.多表连接语法 主要解决目标数据分布在不同的表中(如果目标数据不再一张表,可以通过多表连接查询...

  • 关于Oracle多表查询的一个好办法

    Oracle学习里面难免遇见多表查询,但是遇到多表查询感觉总是找不到方向,其实完全可以用画图的方式来进行多表查询比...

  • 2018-08-30

    今天学习了Oracle的多表连接,组函数,分组查询,子查询,常用函数。 多表连接有三种类型:内连接,外连接,自连接...

  • Oracle基础总结

    Oracle开发基础重点 Oracle一般操作 表空间 用户 表 表数据 Oracle 查询操作 单表查询 多表查...

  • oracle 多表查询优化

    ORACLE中的高速缓冲用于保存查询过的sql语句,单只对单表查询起作用 单表查询优化:写查询语句时尽量统一规范,...

  • Oracle_多表查询

    SQL多表查询 等值和不等值连接查询 从多个表中获取数据:如果在查询的时候,直接从多个表中获取数据。没有添加条件判...

  • oracle学习笔记五——查询之多表查询

    五、多表查询 提到多表查询,自然不得不说的就是:笛卡尔集 概念不多说,自行百度,下图理解清楚了也就大体知道什么是笛...

  • SQL语句常用命令整理---多表查询

    多表查詢之关连查询 多表数据连接查询,简称连接查询。本篇我们来一同学习多表连接查询的相关用法,主要內容有: 内连接...

  • 再学oracle1 层次查询

    做报表时,发现sql的掌握程度还是不够,所以找找资料再次学习一下oracle的基础知识 自查询 很多表设计的时候,...

  • Oracle数据库——多表查询

    一、关联查询 1.关联查询select 表1的字段名,表2的字段名 from 表1 [别名1],表2 [别名2] ...

网友评论

      本文标题:Oracle学习day-28:多表查询

      本文链接:https://www.haomeiwen.com/subject/rmtysctx.html