数据库 关系连接

 更新时间:2009年09月09日 09:18:25   作者:  
数据库 关系连接,多表查询时需要用到的一些东西。
连接分类
关系间的连接分为内连接(inner join)和外连接(outer join)。
外连接又可分为:left outer join,right outer join和full outer join。

内连接计算方法:
如果不加条件将会产生笛卡尔积;
如果有连接条件,按照下一节"连接条件"的规则进行运算,符合条件的元组放入结果关系中。

left outer join 计算过程:
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;
2)如果左关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足

right outer join 计算过程:
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;
2)如果右关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足

full outer join
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;
2)如果左、右关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足

as用来修改连接后结果关系的关系名称以及属性名称。


连接条件
关系之间的连接是可以有条件的,外连接必须要加条件,内连接如果不加条件将会产生笛卡尔积。
有哪些连接条件呢?
natural --
1)两个关系(左关系和友关系)中所有具有相同的名称的属性的值要相等。
2)natural 总是出现在 join语句前面
3)natural的结果关系中,相同名称的属性只会出现一次
4)natural的结果关系中,属性的排列顺序总是按照左关系优先的原则。
5) MySQL中,natural join不能使用on指定其他查询条件
on--
1)on 用在join语句后面
2)on 后面采用关系1.属性a=关系2.属性b 的谓词语法

using--
1)和natural类似,只是显式指定了属性名称
2)如果using也指定了所有相同名称的属性,那么和natural相同


MySQL
MySQL中,natural join和 left outer join不能在同时使用,可以先将natural join语句做成一个view,然后再使用left outer join
join 默认为inner join

相关文章

  • 数据库命名规范小结

    数据库命名规范小结

    数据库命名规范,在实际的数据库开发中,需要注意。
    2009-03-03
  • 数据库之SQL注入原理以及过程的简单介绍

    数据库之SQL注入原理以及过程的简单介绍

    这篇文章主要介绍了数据库之SQL注入原理以及过程的简单介绍,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • YII2数据库查询实践

    YII2数据库查询实践

    这篇文章主要介绍了YII2数据库查询实践的相关资料,需要的朋友可以参考下
    2016-01-01
  • 取随机记录的语句

    取随机记录的语句

    取随机记录的语句...
    2007-03-03
  • DBeaver操作数据表的拷贝的实现

    DBeaver操作数据表的拷贝的实现

    这篇文章主要介绍了DBeaver操作数据表的拷贝的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Spark SQL小文件问题处理

    Spark SQL小文件问题处理

    大量的小文件会影响Hadoop集群管理或者Spark在处理数据时的稳定性,这篇文章主要介绍了Spark SQL小文件问题的处理,感兴趣的同学可以借鉴一下
    2023-04-04
  • SQL之Join的使用详解

    SQL之Join的使用详解

    关于sql语句中的连接(join)关键字,是较为常用而又不太容易理解的关键字,下面就为大家介绍一下相关资料,需要的朋友可以参考下
    2020-09-09
  • sql Union和Union All的使用方法

    sql Union和Union All的使用方法

    UNION指令的目的是将两个SQL语句的结果合并起来。从这个角度来看, 我们会产生这样的感觉,UNION跟JOIN似乎有些许类似,因为这两个指令都可以由多个表格中撷取资料。
    2009-07-07
  • telnet连接操作memcache服务器详解

    telnet连接操作memcache服务器详解

    这篇文章主要介绍了telnet连接操作memcache服务器详解,本文讲解了连接、添加修改、读取、删除、清空所有缓存等操作命令,需要的朋友可以参考下
    2015-04-04
  • 数据库设计经验谈

    数据库设计经验谈

    这篇文章主要介绍了数据库设计经验谈的相关资料,需要的朋友可以参考下
    2007-03-03

最新评论