DML-联结表

注意:在使用联结时,结合之前《SQL-DDL-约束》相关文档,维护引用完整性

表:非关系表、关系表

笛卡尔积(交叉联结、叉联结):

由没有连接条件的表关系返回的结果。检索出的行数目将是第一个表中的行数乘以第二个表中的行数

  • Select 列名称 from 表名称1,表名称2…
  • Select 列名称 from 表名称1 cross join 表名称2----SQLSever

联结种类:

  • where创建的内部联结
  1. 这里的where作用和join内部联结相同
    在这里插入图片描述
  2. 红框部分作用:完全限定列名
  • join创建的内部联结 (内部连接、等值连接,和where的内部联结相比,首选inner join)
  1. inner join/join
    在这里插入图片描述
  2. 哪个表(主键) Inner join 另一个表(候选键)(个人习惯而已)
  3. 用inner join时,和on配套使用,功能等同于where
  4. innner join关键字在表中存在至少一个匹配时返回行。如果关联的表中没有匹配行,就不会列出这些行。
  • 外部联结 :许多连接将一个表中的行与另一个表中的行相关联。但有时候会需要包含没有关联行的那些行。
  1. left outer join/left join
    会从左表那里返回所有行,即使在右表中没有匹配的会从左表那里返回所有行,即使在右表中没有匹配的
  2. right outer join/right joinright outer join/right join
    会从右表那里返回所有行,即使在左表中没有匹配的行
  3. full outer join/full joinfull outer join/full join
    会从左表和右表那里返回所有行,如果左表在右表处没有匹配或者右边在左边处没有匹配,这些行同样会列出
  • 自联结 :在用一张表内进行自身连接,即将同个表的不同行连接起来。自连接可以看作一张表的两个副本之间的连接。在自连接中,必须为表指定两个别名,使之在逻辑上成为两张表。
    注意:子查询、自连接的区别
    在这里插入图片描述
  • 自然联结:标准的连接(内部连接)返回所有数据,甚至相同的列多次出现。自然连接排除多次出现,使每个列只返回一次。自然连接是只能自己完成的一种连接,其中你只能选择那些唯一的列。这一般是通过对表使用通配符(select*),对所有其他表的列使用明确的子集来完成的。
    事实上,迄今为止我们建立的每个内部连接都是自然连接,很可能我们永远都不会用到不是自然连接的内部连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值