MySql学习笔记之——联结比较

联结比较

1、数据表

    customers 表 包含:cust_id(顾客ID)、cust_name(顾客名字)、cust_address(顾客的地址)、cust_email(顾客的邮箱) 一共有 4 个字段、 5 条记录。 orders 表 包含:order_num(订单号)、order_date(订单日期)、cust_id(顾客号) 一共有 3 个字段、 5 条记录。

2、联结测试

2.1、联结(默认省略形式)

是笛卡尔积的结果,一共 25 条记录。

where 子句的重要性:等值联结。(因为在 orders 表中可知顾客 1、3、4、5 号有订单信息)

2.2、inner join 形式

inner join 的结果和默认省略的形式相同。

不过推荐使用 on 关键字。

2.3、自然联结

自然联结只考虑那些在两个关系模式中都出现的属性上取值相同的元组对(但要注意,自然联结是特殊的等值联结,但是等值联结不一定是自然联结。因为联结的表中可能存在两个或更多相同的列(属性)):

2.4、外部联结

许多联结将一个表中的行与另一个表中的行相联结。但有时候会需要包含没有关联行的那些行。这种类型的联结称为外联结。

outer 可以省略。

对比如下:

经验分享 程序员 微信小程序 职场和发展