SQL连接查询的由来:人们对20实际80年代的SQL标准提出批评,认为SELECT语句中无直接的连接或自然连接操作。SQL吸收了这个意见,用较为直接的形式表示各式各样的连接操作,这些操作可在FROM字句中以直接的形式指出。在书写两个关系的连接操作时,SQL2把连接操作符分成连接类型和连接条件两部分(如果图1)连接类型决定了如何处理连接条件中不匹配的元祖。连接条件决定了两个关系中哪些元祖应该匹配,以及连接结果中出现哪些属性。
图1
连接类型 | 连接条件 |
INNER JOIN(内连接) | NATURAL(写在连接类型的左边) |
LEFT OUTER JOIN(左外连接) | ON 写在连接类型的右边 |
RIGHT OUTER JOIN(右外连接) | USING 写在连接类型的右边 |
FULL OUTER JOIN(完全外连接) | |
SQL join 连接的限制:出了sql join 连接查询后,是方便了我们查询。但是当数据超过千万条时却不能再用join了因为此时如果用join的话速度会很慢。这就是好多程序员再优化程序时经常做的一部。去查找有没有过万的表去join过万数据的表。然后把它拆开。这样会明显增加速度。
还有为了增加查询速度在经常用到的字段,还有where后面经常用的也可以加一些非聚集索引等来加快查询的速度。
总之大数据避免用join连接查询(因为用join的时候库在做笛卡尔基如果数据量过大会很慢的,甚至卡死)。