准备完成一份数据库的详细介绍,内容脱离某个具体的DBMS,以阐述数据库的思想为目的,内容将涵盖数据库高级技术中的绝大多数方面,敬请期待。
文章目录
Join
首先明白一点,任何查询SQL的结果都是一个数据集。
Join类型包括:inner join、outer join,outer join分为left outer join、right outer join和full outer join。
通过join谓词,可以实现在join的结果中得到被natural join排除在外的一些记录,即两张表在做join时根据条件做join:这个条件决定相匹配的记录,即确定join后的关系中的记录。三种类型的条件:natural(最常用)、on和using。
Inner Join(natural join is equivalent to natural inner join)
Join是二元关系运算,是两个关系之前的运算,如例子所示,r和s是两个关系,分别有A,B,C,D四个属性和B,C,D三个属性,那么r和s的join运算之后的结果是什么?首先是一个关系,这个关系的模式(schema)是什么?是R∩S,即属性集合的交集,可以看到例子里B,D两个属性是关系共有的属性,则r和s做join运算后的新关系的模式为A,B,C,D,E。新关系的数据记录是哪些记录呢?两个关系做Cartesian Product后,相同属性列(R∩Sÿ