SQL连接查询

连接查询:将多张表(》=2)进行记录的连接(按照某个指定的条件进行数据拼接),最终结果是:记录数有可能变化,字段数一段会增加(至少两张表的合并)

连接查询意义:在用户查看数据的时候,需要显示是数据来自多张表。

连接查询的分类 4类:内连接、外连接、自然连接、交叉连接。

连接查询:join ,使用方式:左表 A join 右表B

 

交叉连接 cross join  保证连接结构的完整性,无任何意义。

从一张表中循环取出每一条记录,每条记录都去另外一张表进行匹配,匹配一定成功(无条件匹配),而连接本身字数数就会增加(保留),结果笛卡尔积

语法:from 左表 A cross join 右表B  ==from 左表A,右表B

内连接:【inner 】join ,从左表中取出每一条数据,去右表中与所有的记录进行匹配,匹配必须是某个条件在左表中与右表中相同,最终才会保留结果。

语法:左表 A 【inner 】 join  右表 B on A.字段=B.字段  on表示 连接条件:条件字段就是代表相同的业务含义(如student中 c_id(班级id)和class 表中 的id)

where 也可替换on ,只是效率太低,每个都去匹配一下。

select * from student  A  inner join class  B  on A.c_id=B.id

 字段别名与表别名的使用:在查询时不同表有同名字段,这个时候需要加上表名才能区分,表名过长,通常使用别名!

SQL连接查询_第1张图片

外连接:outer join 。以某个表为主,取出里面的所以记录,然后每条与另外的一张表进行连接,不管匹配成功与否,都会保留结果;能匹配上,正确保留,不能匹配,其他表的字段都置为NULL

外连接分为两种:

    left join :左外连接(左连接),以左表A为主,

    A left join B on A.字段=B.字段

    right join:右外连接(右连接),以右表B为主

    A right join B on A.字段=B.字段

自然连接:natural join,自动匹配连接条件,系统默认以字段名字作为匹配模式(同名字段作为条件,多个同名字段同时都作为同名条件),连接后会合并同名字段。(本身没有任意义,基本不用!)

分类:

自然内连接  :A natural join B

自然外连接 :A natural left join B 

内连接/外连接  模拟自然连接:使用同名字段,合并字段

A left/right/inner join B using(同名字段名)

你可能感兴趣的:(数据库,内连接,外连接,左链接,右连接)