内连接
内连接 —拼接查询结果 内部有联系,使用内连接 格式: [inner] join —-inner可省
结果: 从左表中取出每一条记录,去右表中与所有的记录进行匹配; 匹配必须是某个条件是左表中与右表中相同,才会保留结果,否则不保留;
基本语法: 左表 [inner] join 右表 on 左表.字段 = 右表.字段;
注意事项:
1、on 表示连接条件;条件字段代表相同的业务含义 如 stu.cid 和 cla.id) 学生stu表中的班级cid 和 班级cla表中的id
2、内连接可以没有连接条件,没有on之后的内容, 这时候系统会保留所有结果笛卡尔集)
3、内连接可以使用where 代替 on 通常不用where,因为where没有on效率高 on指匹配到第一条成功的就结束,其他不匹配; 若没有,不进行匹配 而where会一直匹配,进行判断
4、通常使用字段别名 表别名 在查询数据的时候,不同表有同名字段, 这时候需要加上表名才能区分, 而若表名太长,使用表别名 若不想使用默认的字段名 可以通过[as] 设置字段别名 。
外连接
外连接 –以某一张表为基表 进行相关查询 outer join
结果:以某张表为主,取出里面的所有记录, 然后每条与另外一张表进行连接, 不管能不能匹配上条件,最终都会保留, 能匹配,正确保留; 不能匹配其他表的字段都置空null
分类:分为两种 左连接,右连接 left join 左外连接—左连接,以左表为主 right join 右外连接—右连接,以右表为主
基本语法: 左表 left/right join 右表 on 左表.字段 = 右表.字段;——条件必须有
交叉连接
交叉连接 连接查询 cross join:
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,
返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。
自然连接
自然连接 natural join 自然连接
就是系统自动匹配连接条件 系统以字段名字作为匹配模式同名字段作为字段,多个同名字段都作为条件)
自然连接:可以分为 自然内连接 和 自然外连接 内连接 natural left join 自然左外连接
其实:内连接和外连接都可以模拟自然连接,
使用同名字段,合并字段 左表 left/ right inner join 右表 on using字段名) —–使用同名字段,合并字段
–自然内连接 select * from stu natural join cla;
-自然左外连接 select * from stu natural left join cla;
–外连接模拟自然左外连接 select * from stu left join cla usingid);
以上就是数据库的四种连接方式分别是什么的详细内容,更多请关注风君子博客其它相关文章!