一、笛卡尔集:
1、笛卡尔集会在下面条件下产生:
– 省略连接条件
– 连接条件无效
– 所有表中的所有行互相连接
• 为了避免笛卡尔集, 可以在 WHERE 加入有 效的连接条件。
二、等值/连接连接 :
1、使用连接在多个表中查询数据 :
• 在 WHERE 子句中写入连接条件。
• 在表中有相同列时,在列名之前加上表名前缀
2、区分重复的列名:
• 在不同表中具有相同列名的列可以用表的别名加以区分。
• 如果使用了表别名,则在select语句中需要使用表别名代替表名
• 表别名最多支持32个字符长度,但建议越少越好
3、表的别名:
• 使用别名可以简化查询。
• 使用表名前缀可以提高执行效率。
4、连接多个表 :
• 连接 n个表,至少需要 n-1个连接条件。 例如:连接三个表,至少需要两个连接条件。
5、连接查询案例 :
含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询.
笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行.
发生原因:没有有效的连接条件.
如何避免:添加有效的连接条件.
分类:
按年代分类:
sql92标准:仅仅支持内连接
sql99标准【推荐】:支持内连接+外连接(左外和右外)+交叉连接
按功能分类:
内连接:
等值连接
非等值连接
自连接
外连接: